在当前稳定版本的node.js v0.10.33 there is a bug将系统时间设置为过去时,setTimeout/setInterval 不再触发。
运行这段代码看看我的意思:
var i = 0;
var handle = setInterval(function()
{
console.log(++i);
}, 1000);
然后在运行时将系统时间更改为过去的时间,无论是在 Windows 还是 Linux 上。间隔/超时将不再触发。当将时间更改为 future 时, Node 表现得非常好并保持运行间隔。这个错误在 Node v0.11.3 中已修复,但我还无法使用,因为它不稳定。
我尝试了像timer-shim这样的模块和 nanotimer但他们内部也使用 setInterval/setTimeout ,因此有同样的问题。
目前,我怎样才能以最好的方式解决我的应用程序的这个 Node 错误,而无需进行时髦的猴子修补?
最佳答案
这在旧版本的 0.10 分支中已修复:https://nodejs.org/en/blog/release/v0.10.36/
关于node.js - 更改系统时间时如何使用 setInterval/setTimeout 解决 NodeJS 稳定错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27458602/