嗨,我使用node.js的async模塊異步實現for循環。如何打破每個循環的async.js?
我的問題是:如何打破循環執行,並得到了循環?我試過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'將解釋爲打破一個「錯誤」並停止循環)。將它作爲一個已知值(a * truthy * one),您可以在最終回調中檢查它是否是中斷而不是錯誤。 – Chad 2013-02-18 14:54:54
你能告訴我如何在這裏做到這一點?我不能在'return false'的地方調用'callback(1)''我在代碼中顯示並打破它的行 – mithunsatheesh 2013-02-18 15:11:21
如果你沒有在所有路徑中調用回調,那麼循環永遠不會「結束」。如果你有一條路徑沒有調用回調,那麼你做錯了。這是異步的,你的返回值什麼也不做。 – Chad 2013-02-18 15:21:08