将NodeJS议程就绪事件匿名函数转换为普通函数
Convert NodeJS agenda ready event anonymous function to normal function
我正在使用 NodeJS Agenda 模块进行作业调度。
在议程中有一项活动 'ready'
module.exports = function(agenda) {
agenda.define('test', function(job, done) {
});
agenda.on('ready', function() {
agenda.every('*/5 * * * * *', 'test');
agenda.start();
});
}
在就绪事件里面我使用的是匿名函数,但我不想使用匿名函数,想创建一个普通函数。
例如
module.exports = function(agenda) {
agenda.define('test', function(job, done) {
});
agenda.on('ready', startJob());
}
function startJob(agenda) {
agenda.every('*/5 * * * * *', 'test');
agenda.start();
}
但无法获取
Cannot read property 'start' of undefined
问题是您在没有传递议程对象的情况下直接调用该函数。解决这个问题的一种方法是:
agenda.on('ready', () => { startJob(agenda); });
或者,如果您想将 startJob 函数作为回调传递,则需要将议程对象绑定到它:
agenda.on('ready', startJob.bind(this, agenda));
我正在使用 NodeJS Agenda 模块进行作业调度。 在议程中有一项活动 'ready'
module.exports = function(agenda) {
agenda.define('test', function(job, done) {
});
agenda.on('ready', function() {
agenda.every('*/5 * * * * *', 'test');
agenda.start();
});
}
在就绪事件里面我使用的是匿名函数,但我不想使用匿名函数,想创建一个普通函数。
例如
module.exports = function(agenda) {
agenda.define('test', function(job, done) {
});
agenda.on('ready', startJob());
}
function startJob(agenda) {
agenda.every('*/5 * * * * *', 'test');
agenda.start();
}
但无法获取
Cannot read property 'start' of undefined
问题是您在没有传递议程对象的情况下直接调用该函数。解决这个问题的一种方法是:
agenda.on('ready', () => { startJob(agenda); });
或者,如果您想将 startJob 函数作为回调传递,则需要将议程对象绑定到它:
agenda.on('ready', startJob.bind(this, agenda));