2

所以我正在使用https://npmjs.org/package/node-schedule来安排一些任务,这对 node.js 来说有点新,我不明白为什么在定义函数和调用时创建一个函数'in line'会起作用它没有正确安排,它只是立即运行然后退出。

job = schedule.scheduleJob({}, function (){console.log('one minute')});

有效,但是

function test(){
    console.log('one minute')
}
job = schedule.scheduleJob({}, test);

触发一次并退出。

4

1 回答 1

1

function(){.....} 创建一个指向匿名函数的指针,该函数在计划的超时到期时进行评估。直接调用会立即评估,因为它不是函数指针;本质上,程序试图评估它,以防函数返回一个它可以存储和稍后访问的指针(返回函数(){.....})。您可以通过将回调设置为来模拟您想要的行为

function(){test()}

或将测试主体更改为:

return function(){console.log('one minute')};

您可以使用 setInterval 和 setTimeout 方法在浏览器窗口中模拟此行为;它们是 node-schedule 在内部用来调度任务的。

于 2014-02-11T05:55:14.280 回答