如何在改变系统时间时用setInterval / setTimeout解决nodejs稳定的bug

在当前稳定版本的node.js v0.10.33中, 有一个错误 ,在将系统时间设置为过去时,setTimeout / setInterval不再触发。

运行这段代码来看看我的意思:

var i = 0; var handle = setInterval(function() { console.log(++i); }, 1000); 

然后在运行时将系统的时间更改为过去,如果在Windows或Linux上不重要。 间隔/超时不会再触发。 在将时间引向未来时,节点performance得非常好,并保持间隔运行。 这个bug在节点v0.11.3中得到了修复,我不能使用它,因为它不稳定。

我试过像timer-shim和nanotimer这样的模块,但是它们在内部也使用了setInterval / setTimeout,因此也有同样的问题。

就目前来说,我怎样才能以最好的方式绕过这个节点错误,而没有时髦的猴子修补呢?

这在0.10分支的旧版本中得到修复: https : //nodejs.org/en/blog/release/v0.10.36/