[英]Elegant way for multiple asynchronous function calls in Javascript
我需要多次調用同一個異步函數,但是直到一次調用完成(即執行回調函數時)。 所以我的代碼看起來像這樣:
syncFunc(a, function() {
syncFunc(b, function() {
syncFunc(c, function() {
syncFunc(.....)
});
});
});
現在有可能以某種方式縮短此時間嗎? 我的第一個想法是使用for循環,例如:
syncParams = [a, b, c, ...];
for(var i = 0;; i++) {
syncFunc(syncParams[i], function() {
if(i < syncParams.length - 1) {
alert('finished');
break;
} else {
continue;
}
}
}
但是顯然這是行不通的,因為沒有連接繼續和中斷循環。 我的另一個想法是使用間隔檢查每秒是否完成了一個異步調用,然后使用下一個參數調用下一個,但這似乎太復雜了。 有沒有使用某些庫的簡單方法?
編輯 :因為沒有人能理解庫問題:我正在開發PhoneGap移動應用程序,並且我正在使用IDE進行開發,所以加入第三方庫並不是很高興。 我也很好奇這將如何工作。
我看到您想每次使用不同的參數調用該函數。 那么async.forEachSeries將是最合適的。
如果您想每次使用相同的參數調用該函數,則async.whilst會很好地工作。 https://github.com/caolan/async/#whilsttest-fn-callback
@Jack提到了這個問題,您可以自己做一個很好的答案: 如何同步JavaScript回調?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.