我需要同时进行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