У меня есть ситуация, когда мои вызовы 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.
Но, очевидно, это не то, что мне нужно. Любая помощь будет оценена.