使用node-cron时如何将信息从成员变量传递到成员方法?

How to pass information from a member variable to a member method while using node-cron?

如果我有这样的东西:

Foo = function  (bar_) {
    this.bar = bar_;
    this.run = function() {
    cron.schedule('*/5 * * * * *', function() {
       console.log(/*this.bar?*/);
    });
}

var myvar = new Foo("mybar");
myvar.run();

如何设置 cron 在调用 this.run 时打印出 this.bar 的值?我试过 this.bar 并且 returns undefined.

你可以试试这个:

Foo = function  (bar_) {
this.bar = bar_;
var that = this
this.run = function() {
   cron.schedule('*/5 * * * * *', function() {
      console.log(that.bar);
   });
}

var myvar = new Foo("mybar");
myvar.run();

解释如下: this 是对 class Foo 实例的引用,但它也是任何实例化对象对其自身的默认引用。

因此,在 cron.schedule 调用内部,this 指向 cron 而不是 Foo。将 this 复制到 that 之前,并在 cron.shcedule 中使用 that 为您提供正确的对象("this") 您正在寻找