在当前稳定版本的node.js v0.10.33 there is a bug中,当将系统时间设置为过去时,setTimeout / setInterval不再触发。
运行此代码以查看我的意思:
var i = 0;
var handle = setInterval(function()
{
console.log(++i);
}, 1000);
然后在运行时将系统的时间更改为过去,无论是在Windows还是Linux上都无关紧要。间隔/超时将不再触发。在处理未来的时间时,节点表现得非常好并且保持运行间隔。该错误已在节点v0.11.3中修复,我暂时无法使用,因为它不稳定。
我尝试过类似timer-shim和nanotimer的模块,但它们内部也使用了setInterval / setTimeout,因此也存在同样的问题。
目前,如何在没有时髦的猴子修补的情况下以最佳方式为我的应用程序解决此节点错误?