我正在处理nodejs中涉及每分钟检查数据库中时间的事情。为此,我在首次启动服务器时获得了settimeout,以使我的setInterval尽可能接近分钟。但是,启动我的setinterval的settimeout回调会立即触发,而不是等待。
setTimeout(function(){
console.log('starting time checks');
setInterval(afterdelay,60*1000);
}, 60-new Date(Date.now()).getSeconds());
答案 0 :(得分:2)
setTimeout
回调的第二个参数是计时器在执行指定函数或代码之前应该等待的时间(以毫秒为单位):
setTimeout(function(){
console.log('starting time checks');
setInterval(afterdelay, 60*1000);
}, 60000);
但是,如果您想在应用启动后一分钟运行afterdelay
功能,则可以使用setInterval
而不使用setTimeout
:
setInterval(afterdelay, 60000);