使用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") 您正在寻找
如果我有这样的东西:
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") 您正在寻找