Node.js nodejs-每分钟,每分钟
我如何等待特定的系统时间才能开火 我想在秒=0时触发一个事件,即每分钟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函数。 它们的节点
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毫秒检查一次几乎肯定会不时“错过”。在这种情况下,每秒进行两次投票(想想奈奎斯特定理),以确保采样速度足够快,从而确保“命中率”,这并不罕见。