我需要同時進行3個AJAX調用,如果他們都成功,那麼我需要執行一個函數。如果任何呼叫失敗,我需要知道它是哪一個,以及它拋出的錯誤。執行功能取決於多個Ajax調用狀態
我認爲jQuery的承諾是我需要的。我已經看到許多例子做when
& then
承諾,但沒有看到任何加強這一特定問題。
我會欣賞id有人可以指引我正確的方向。
我需要同時進行3個AJAX調用,如果他們都成功,那麼我需要執行一個函數。如果任何呼叫失敗,我需要知道它是哪一個,以及它拋出的錯誤。執行功能取決於多個Ajax調用狀態
我認爲jQuery的承諾是我需要的。我已經看到許多例子做when
& then
承諾,但沒有看到任何加強這一特定問題。
我會欣賞id有人可以指引我正確的方向。
有點冗長提出一個觀點,但你堅持從陣列中的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個Ajax調用。它看起來像很多重複的代碼? – RuntimeException
@RuntimeException - 當然,有可能有數百種方法來做到這一點,這裏是一個[**示例**](http://jsfiddle.net/ZEUDR/) – adeneo
我喜歡這個例子,謝謝Adeneo! – RuntimeException