繁体   English   中英

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

[英]Node.js crashes when using long interval in setinterval

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

当我只运行上面的代码时,它工作正常,但它确实在我的应用程序内部中断,我无法指出我的代码的哪一部分打破它,因为它非常冗长,没有任何东西看起来“可疑”。 无论如何,当间隔时间缩短时,它就像我写的一样。

而不是直接调用函数给它回调。

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

setInterval(function(){
 createSasTokenTimer();
}, 3000000);

使用此方法,您将匿名函数传递给setInterval。 它将在每个间隔调用此函数一次,在此示例中为3000000毫秒。

目前,您可以使用此代码。 为了进一步理解,我建议研究匿名函数和闭包。

希望这可以帮助。

对我来说,这看起来像是一个非标准模块,而不是本机模块。 查看global.process.moduleLoadList它应该有条目

 'NativeModule timers',
 'Binding timer_wrap',

并检查您的代码,您没有导入第三方timers.js

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM