所以我使用一个叫做node-cron的模块来每天晚上执行一系列函数。无法使用Node-Cron在module.exports对象中执行回调?
我的功能位于另一个文件中。我在我的app.js中添加了required
那个文件,其中node-cron Object所在的位置。该对象看起来像这样
var job = new CronJob('00 51 17 * * 0-6', savantJS.getTracksFromSavants, null, true, 'America/Los_Angeles');
这将在下午5点51分LA时间就好在我savantJS文件执行getTracksFromSavants
功能。但是,当我尝试在我的savantJS文件中使用回调函数时会发生问题。
例如:
module.exports = {
getTracksFromSavants: function(){
//do stuff here with arr
if(stuff happens here){
this.doNextFunction(arr)
}
},
doNextFunction: function(arr){
//do stuff
}
}
此执行getTracksFromSavants
功能很好,但一旦它到达if
它说,doNextFunction
没有定义。
在另一面,如果我写我的Cron是这样的:
var job = new CronJob('00 51 17 * * 0-6', savantJS.getTracksFromSavants(), null, true, 'America/Los_Angeles');
它执行getTracksFromSavants()
精细的回调。然而问题是,当我在CronJob对象中使用()
时,它每次启动服务器时都会执行该函数,因为它只应在5:51 pm执行。
任何想法?
你可以在调用'doNextFunction'之前检查'this'吗? –
@TuanAnhTran'this'指的是module.exports对象......我想。我可以证实这一点,因为当我设置函数在cron中执行到'savantJS.getTracksFromSavants()'时,回调函数可以正常工作,因为回调函数'this.doNextFunction'可以正常工作。 –