setTimeout回调立即执行

时间:2017-08-02 22:57:24

标签: node.js settimeout

我正在处理nodejs中涉及每分钟检查数据库中时间的事情。为此,我在首次启动服务器时获得了settimeout,以使我的setInterval尽可能接近分钟。但是,启动我的setinterval的settimeout回调会立即触发,而不是等待。

setTimeout(function(){
  console.log('starting time checks');
  setInterval(afterdelay,60*1000);
}, 60-new Date(Date.now()).getSeconds());

1 个答案:

答案 0 :(得分:2)

setTimeout回调的第二个参数是计时器在执行指定函数或代码之前应该等待的时间(以毫秒为单位):

setTimeout(function(){
  console.log('starting time checks');
  setInterval(afterdelay, 60*1000);
}, 60000);

但是,如果您想在应用启动后一分钟运行afterdelay功能,则可以使用setInterval而不使用setTimeout

setInterval(afterdelay, 60000);