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

标签 javascript node.js 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 毫秒。

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

希望这会有所帮助。

关于javascript - 在 setinterval 中使用长间隔时,Node.js 崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31424223/

相关文章:

javascript - Firebug 控制台突然不显示 http 消息

javascript - jQuery 替代 Div 元素

css - node.js 不会在所有页面加载 css 样式

javascript - css Sprite 动画的setInterval

javascript - 如何使用 Javascript 过滤无序列表以仅显示选定的元素?

javascript - 服务中的 angularJS $stateParams

node.js - 有人将 Node.js 与 Amazon SNS 和 Apple 推送通知一起使用吗?

javascript - 启动 Framework7 时出现错误 'Dom7 is not defined' - Vue app with Webpack

javascript - SetInterval 不从 HTML 表单的 onClick 事件运行

javascript - 清除间隔不起作用