[英]Node loop: Maximum call stack size exceeded
我正在尝试实现一个无限循环,每5秒在一个线程HTTP监视器的启发下进行一些工作。
function doWork(callback) {
console.log("doWork called");
//todo: do work
callback();
}
function query_doWork() {
doWork(function() {
setTimeout(query_doWork(), 5000);
});
}
query_doWork();
与其每隔5秒打印一次“ doWork被调用 ”,它只是刷新了很多,然后以这种状态退出:
RangeError: Maximum call stack size exceeded
也许我对Node.js并不了解,但是我明白了为什么它不能正常工作。 是什么原因?
在setTimeout
您应该定义要调用的函数。 相反,您正在做的就是调用它。 这就是为什么要输入无限递归循环的原因。 因此,请替换:
setTimeout(query_doWork(), 5000);
与:
setTimeout(query_doWork, 5000);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.