我有點困惑如何確定何時稱爲異步函數多次從另一個完成對最後一個迭代的電話:的jQuery JavaScript的嵌套異步函數回調
function MainAsyncFunction(callback) {
for (var i = 0; i < 10; i++) {
SubAsyncFunction(function(success) {
if (i >= 10 && success) { // THIS IS WRONG?!
callback(true); // happens too early
}
});
}
};
function SubAsyncFunction(callback) {
SubSubAsyncFunction(function() {
callback(true);
});
}
我在做什麼在呼喚Google Distance Matrix service,它有25個目的地的限制,因此我不得不拆分我的目的地數組來調用這個服務多次,但我不明白它什麼時候結束。
並且在代碼的主要位中,我可以看出MainAsyncFunction中的循環的第二次迭代在進行回調時尚未完成。
我認爲我的問題是我在處理JavaScript中的異步函數時沒有掌握事件的順序......請解釋如何正常實現主題。
我已經簡化了我的代碼,將這個對我來說還是工作? – Tsar 2012-03-29 15:06:47
是的,這仍然有效。給我一點,我會轉換你的新代碼... – 2012-03-29 15:16:53
@Tsar看到我的編輯 – 2012-03-29 16:17:58