0

如果全部成功,我需要同时进行 3 个 AJAX 调用,然后我需要执行一个函数。如果任何调用失败,我需要知道它是哪一个以及它抛出了什么错误。

我认为 jquery promise 是我需要的。我研究了许多在承诺上做when&的例子then,但没有看到任何解决这个特定问题的方法。

如果有人能引导我走向正确的方向,我将不胜感激。

4

2 回答 2

1

说明一点有点冗长,但是您将从 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()将不会被调用

于 2013-08-20T13:42:45.967 回答
0

又快又脏:

  • 声明 3 个状态变量
  • 进行 3 个 AJAX 调用
  • 在 AJAX 调用回调函数中设置状态变量
  • 让每个回调函数调用你的最终函数作为它的最后一条指令
  • 通过首先检查状态变量的状态(未定义?)来编写您的最终函数,当所有 3 个都被定义时,执行您的代码
于 2013-08-20T13:45:26.527 回答