节点永远循环,异步调用耗尽堆栈空间

时间:2016-09-21 20:00:59

标签: javascript node.js asynchronous

我有一些Java

while(true) {
  String result = http.get(url);
  process(result);
}

我想转而使用JavaScript在Node上运行。但是get和process函数都是异步的,并且有回调函数。

function loop(process){
  http.get(url, function(result){
    process(result, function(){
      loop(process);
    });
  });
};
loop(process);

我认为这会奏效。在处理结果完成之前,我不希望代码进行下一次HTTP调用,但我认为这会让我快速耗尽堆栈空间。如何改进这些代码,以便它能够永久运行而不会占用更多内存?

编辑:我错了。这不会占用堆栈。在触发回调之前,外部调用将被解析并从堆栈中取出。

0 个答案:

没有答案