У меня есть ситуация, когда мои вызовы ajax должны выполняться в определенном порядке. Я использовал объекты JQuery Deferred в других ситуациях, но не могу найти способ сделать так, чтобы это было правильно.
У меня есть функция, которая выполняет в течение жизни несколько запросов ajax
. Некоторые из запросов будут выполняться во время обратного вызова других запросов.
Мой вопрос: есть способ вернуть все вложенные отложенные объекты в исходный вызов $.when
?
Упрощенный пример:
function nestedAjax() {
$.get("/", function(){
console.log("First ajax done.");
$.get("/", function(){
console.log("Second ajax done.");
});
});
};
Я пытаюсь использовать nestedAjax
функцию $.when()
и $.done()
следующим образом:
$.when(nestedAjax()).done(function(){
console.log("Complete");
});
С выходом на консоль:
> First ajax done.
> Second ajax done.
> Complete.
Я могу вернуть первый get
, чтобы достичь этого:
> First ajax done.
> Complete.
> Second ajax done.
Но, очевидно, это не то, что мне нужно. Любая помощь будет оценена.