【发布时间】:2013-02-18 14:52:04
【问题描述】:
您好,我正在使用 node.js 的 async 模块来异步实现 for 循环。
我的问题是:如何中断循环执行并跳出循环?我尝试给 return , return false 但没有运气。
这里是示例代码:
async.until(
function() { return goal; },
function(callback) {
async.each(_rules,
function(rule,callback) {
var outcome = true;
.... some code ....
if(changes){
console.log("hi");
return false;// HERE I NEED TO BREAK
}
else
callback();
},
function(err){ }
);
if (!changes || session.process)
goal = true;
callback();
},
function(err){ callback(session); }
);
【问题讨论】:
-
您可以通过在回调的第一个参数中发送一些内容来中断(
async将解释为“错误”并停止循环)。将其设为一个已知值(真实),您可以在最终回调中检查它以了解它是中断而不是错误。 -
你能告诉我怎么做吗?我不能在代码中显示的
return false;行的位置调用callback(1)并打破它 -
如果你不在所有路径中调用回调,那么循环将永远不会“结束”。如果您的路径没有调用回调,那么您做错了。这是异步的,你的返回值什么都不做。
标签: javascript node.js loops callback