簡體   English   中英

根據多個ajax調用狀態執行功能

[英]Execute function depending on multiple ajax calls status

如果它們全部成功,我需要同時進行3個AJAX調用,然后我需要執行一個函數。 如果有任何呼叫失敗,我需要知道是哪個呼叫以及發生了什么錯誤。

我認為jQuery Promise是我所需要的。 我研究了許多在“ when和“ then ”兌現承諾的情況下進行的工作,但還沒有發現任何解決該特定問題的方法。

我會很感激有人能引導我正確的方向。

稍微冗長一點,但您可以將ajax調用返回的延遲保留在數組中,然后在該數組上使用$.when來完成所有操作:

var request1 = $.ajax({
    url: 'someurl1.php'
}).fail(function() {
    alert('request 1 failed');
});

var request2 = $.ajax({
    url: 'someurl2.php'
}).fail(function() {
    alert('request 2 failed');
});

var request3 = $.ajax({
    url: 'someurl3.php'
}).fail(function() {
    alert('request 3 failed');
});

$.when.apply($, [request1, request2, request3]).then(function() {
    // all done
});

請注意,如果任何調用失敗,則不會調用.then()

快速又骯臟:

  • 聲明3個狀態變量
  • 撥打3個AJAX電話
  • 在AJAX調用回調函數中設置狀態變量
  • 讓每個回調函數將您的最終函數稱為最后一條指令
  • 通過首先檢查狀態變量的狀態(未定義?)來編寫最終函數,並在定義了所有3個變量后執行代碼

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM