2013-10-03 56 views
1

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

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

作品,但

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

闪光一次,然后退出。

回答

1

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

function(){test()} 

或改变测试的身体:

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

您可以通过使用setInterval和setTimeout的模拟在浏览器窗口此行为方法;它们是节点调度在内部用于调度任务的内容。