我有一種情況,我的ajax調用必須以特定順序執行。我在其他情況下使用了jQuery Deferred對象,但似乎無法找到使其適當運行的方法。帶嵌套AJAX調用的jQuery延遲對象
我有一個函數在其生命週期中執行多個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.
I可以返回第一個get
來達到這個目的:
> First ajax done.
> Complete.
> Second ajax done.
但是顯然這不是我所要求的。任何幫助,將不勝感激。
如果它們必須按順序發生,爲什麼不首先執行同步請求?不要試圖在一個圓孔中安裝一個方形釘。 –
你說得對。感謝喚醒電話。我設法重新排列並實現了我所需的功能。我仍然感興趣但是如果有一種方法可以從嵌套的ajax調用中收集延遲對象以進行評估,所以我的問題依然存在。 – Aesthete
這很公平。 :)我可能沒有在這裏基地 - 這是很晚,我一直在工作 - 但也許在每個AJAX調用的回調函數,你可以添加對象到一個數組?你可以通過鏈傳遞數組作爲參數或將其留在全局空間中。 –