我有一种情况,我的 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.
但显然这不是我所要求的。任何帮助,将不胜感激。