我需要在我的node.js服务器上运行一个函数,它每15分钟完成一次相同的任务。 我用于setInterval,如例3中的示例 - http://tinyurl.com/c2jj7dl。 所以,我得到了这样的东西:
exports.start = function (list, callback){
setInterval(stuffTop.loadstuff, 900000, list, function (parsedList) {
// CODE STUFF HERE
// THEN THE CALLBACK.
callback(parsedDynamicList);
});
}
实际上这个东西有效,但功能第一次完成 - 仅在900000MS之后。 是否可以选择使功能完整(在第一轮) - 直接调用?感谢。
答案 0 :(得分:3)
使用递归调用自身的函数:
foo = function(){
doStuff()
setTimeout(foo,900000)
}
在你的情况下看起来像这样:
exports.start = function (list, callback){
var foo = function () {
stuffTop.loadstuff(list, function(parsedList) {
//CODE STUFF HERE
//THEN THE CALLBACK
callback(parsedDynamicList);
setTimeout(foo,900000);
});
}
foo();
}
答案 1 :(得分:2)
您的问题的解决方案很简单。在进入setInterval之前调用该函数。像这样:
var callback=function(){}
var list=['some','list'];
var repeaterFunction = function(){console.log("do now!")}
var start = function (list, callback){
repeaterFunction();
var repeater = setInterval(repeaterFunction, 5000, list, function(parsedList){
// CODE STUFF HERE
// THEN THE CALLBACK.
callback(parsedDynamicList);
});
}
start()
我使用var repeater = setInterval(...
的事实允许clearInterval(repeater)
随时随地。
这是fiddle