setTimeout - JavaScript堆内存不足

问题描述 投票:1回答:1

所以我想创建一个程序,每15分钟从web api获取数据并处理它。这个过程将是无止境的(直到程序关闭)。我已经尝试了超时但我的电脑内存很快耗尽了内存(24GB内存),所以我的代码显然是一个非常糟糕的方法。处理和收集数据部分代码已经完成并且工作正常,什么不是'工作是无限循环的一部分。我对这个问题的看法基本上是这样的:

for (i = 0;; ++i) {
  setDelay(i);
}

function setDelay(i) {
  setTimeout(function(){
    //More code goes in here.
    console.log(i);
  }, 1000);
}

当然,必须有一种更好的方法,每隔X分钟无休止地执行一大块代码,而不会充斥你的PC RAM。有任何想法吗?

node.js timeout settimeout infinite-loop
1个回答
1
投票

你可能想要使用setInterval,它完全符合你的需要。片段

setInterval(function () {
  console.log('Some message...');
}, 100);

将每100毫秒运行一次console.log语句,而不会弄乱堆栈或浪费系统资源。

© www.soinside.com 2019 - 2024. All rights reserved.