我正在使用server
来安排node-schedule
方法。我正在尝试
synchronizeAll()
该项目的结果
constructor() {
var schedule = require('node-schedule');
var rule = new schedule.RecurrenceRule();
rule.minute = new schedule.Range(0, 59, 5);
this.initializeDb().then(() => {
schedule.scheduleJob(rule, function () {
console.log('works!!');
this.synchronizeAll();
});
});
}
synchronizeAll() {
let synchronizeProjects: SynchronizeProjects;
synchronizeProjects.synchronize().then(result => {
console.log(result);
});
}
我知道问题的发生是因为我正在调用calback函数中的类方法,但是我不知道如何纠正
答案 0 :(得分:1)
此关键字在scheduleJob的回调函数中丢失了原始引用。您可以在this.initialiseDB()调用之前将 this 存储在变量中(让t = this),然后执行t.synchronizeAll(),或者可以保留 this 通过使用如下所示的箭头功能进行引用。
schedule.scheduleJob(rule , () => { this.synchronizeAll(); }