nodejs - 每分钟,每分钟

cra*_*aft 3 node.js

如何在开火前等待特定的系统时间?

我想在秒= 0(即每分钟)时触发一个事件

while (1==1) {
    var date = new Date();
    var sec = date.getSeconds();
    if(sec===0) {
        Do Something()
    }

}
Run Code Online (Sandbox Code Playgroud)

gus*_*nke 11

你不应该这样做,因为这样while你将有一个阻止操作.此外,在任何JavaScript平台中都有更好的事情要做,比如使用setInterval/ setTimeoutfunctions.
他们的节点文档在这里.

如何实现您想要的快速示例:

setInterval(function() {
  var date = new Date();
  if ( date.getSeconds() === 0 ) {
    DoSomething();
  }
}, 1000);
Run Code Online (Sandbox Code Playgroud)

为了对Node中的预定进程进行更细粒度的控制,也许你应该checkout node-cron.

  • @crankshaft应该指出,setInterval不保证在1000ms内返回。由于系统中断,它可能会更早返回。如果系统繁忙,它可能会在稍后返回。实际上,如果每隔1000毫秒检查一次,几乎可以肯定会不时发现“遗漏”,如果该过程比预期的稍晚唤醒。在这种情况下,每秒两次轮询(Nyquist定理)以确保您足够快地采样以确保“命中”是很正常的。 (2认同)