Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js nodejs-每分钟,每分钟_Node.js - Fatal编程技术网

Node.js nodejs-每分钟,每分钟

Node.js nodejs-每分钟,每分钟,node.js,Node.js,我如何等待特定的系统时间才能开火 我想在秒=0时触发一个事件,即每分钟 while (1==1) { var date = new Date(); var sec = date.getSeconds(); if(sec===0) { Do Something() } } 您不应该这样做,因为使用此while将执行阻塞操作。此外,在任何JavaScript平台上都有更好的操作,比如使用setInterval/setTimeout函数。 它们的节点

我如何等待特定的系统时间才能开火

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

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

}

您不应该这样做,因为使用此
while
将执行阻塞操作。此外,在任何JavaScript平台上都有更好的操作,比如使用
setInterval
/
setTimeout
函数。
它们的节点文档是

如何实现您的目标的快速示例:

setInterval(function() {
  var date = new Date();
  if ( date.getSeconds() === 0 ) {
    DoSomething();
  }
}, 1000);

要对节点中的计划进程进行更细粒度的控制,也许您应该签出。

谢谢,我熟悉setInterval和setTimeout,但不知道您可以这样使用它。我如何确保事件只触发一次,因为它可能会持续触发1秒?是的,当你知道如何触发时,这很简单,现在看起来非常明显。非常感谢。@应该指出,
setInterval
没有承诺在1000毫秒内返回。由于系统中断,它可能会提前返回。如果系统繁忙,它可能会在稍后显著返回。事实上,如果如预期的那样,进程的唤醒时间比要求的稍晚,那么每1000毫秒检查一次几乎肯定会不时“错过”。在这种情况下,每秒进行两次投票(想想奈奎斯特定理),以确保采样速度足够快,从而确保“命中率”,这并不罕见。