我需要遞歸異步Ajax調用後執行功能之後。 我:執行的函數的遞歸異步Ajax調用
var tree = [1, 2 ,3, 4];
recursion(0);
function recursion(i) {
$.ajax('http://example.com/' + tree[i])
.done(function (data) {
// data is array
++i;
if (tree[i] !==undefined) {
$.each(data, function() {
recursion(i);
});
}
});
}
而且我希望以後所有通話的時候都做做:
recursion(0).done(function() {alert('All calls are done!')});
我知道,我應該使用.Deferred $的jQuery,但AJAX調用返回的承諾太。 我試圖使用$ .Deferred但我在這個地方遇到了問題循環:
$.each(data, function() {
recursion(i);
});
請幫助我。
你的'recursion()'甚至不返回一個承諾。 – Bergi 2014-08-28 14:22:44
看看[這個問題](http://stackoverflow.com/q/21762982/1048572)雖然和[這裏](http:// stackoverflow。com/q/5627284/1048572)關於如何等待多個'recurse()'承諾 – Bergi 2014-08-28 14:25:42
爲什麼當遞歸調用實際上不使用'data'時,爲什麼遞歸調用循環的'data'呢? ?它是否需要遞歸?您可能想發佈您的實際代碼。 – Bergi 2014-08-28 14:27:36