在setinterval中使用长时间间隔时,Node.js会崩溃

function createSasTokenTimer() { console.log("Hello"); } setInterval(createSasTokenTimer, 3000000); 

我运行这个代码,50分钟后,我得到以下错误:

 Hello timers.js:265 callback.apply(this, args); ^ TypeError: Cannot read property 'apply' of undefined at wrapper [as _onTimeout] (timers.js:265:13) at Timer.listOnTimeout (timers.js:110:15) 

间隔时间较短(例如2000000 ),一切正常。

这是Node.js中的错误吗?


更新:

操作系统: Windows ,Node.js版本: 0.12.4

当我只运行上面的代码时,它可以正常工作,但是当它在我的应用程序中时,它会中断,我不能指出我的代码中的哪一部分会破坏它,因为它非常冗长,没有看起来“可疑”。 无论如何,当间隔时间较短,它的工作,因为我写了。

而不是调用函数直接在callback中给它。

 function createSasTokenTimer() { console.log("Hello"); } setInterval(function(){ createSasTokenTimer(); }, 3000000); 

使用这个方法,你传递一个匿名函数给setInterval。 它会每隔一段时间调用一次这个函数,在这个例子中是3000000毫秒。

现在,你可以使用这个代码。 为了进一步理解,我build议研究匿名函数和闭包。

希望这可以帮助。

对我来说,这看起来像你正在使用的非标准模块,而不是本地模块。 看看global.process.moduleLoadList它应该有条目

  'NativeModule timers', 'Binding timer_wrap', 

并检查你的代码,你是不是导入第三方timers.js