2013-07-01 211 views
3

如何在启动之前等待特定的系统时间?nodejs - 每分钟,一分钟

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

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

} 

回答

11

你不应该这样做,因为这个while你将有一个阻塞操作。另外,在任何JavaScript平台中都有更好的事情要做,比如使用setInterval/setTimeout函数。
它们的节点文档是here

如何实现你想要的一个简单的例子:

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

对于节点上的调度进程的一个更为精细的控制,也许你应该结帐node-cron

+0

谢谢,我熟悉setInterval和setTimeout,但没有意识到你可以用这种方式使用它。我怎样才能确保这个活动只发射一次,因为它可能会持续发射1秒? – crankshaft

+0

查看更新的答案。我希望这是你的期望... – gustavohenke

+1

是的,当你知道如何,现在看起来非常明显,这很简单。非常感谢。 – crankshaft