多个 ajax 调用的 jQuery 回调

标签 jquery ajax callback

我想在一个点击事件中进行三个 ajax 调用。每个 ajax 调用执行不同的操作并返回最终回调所需的数据。调用本身并不相互依赖,它们可以同时进行,但是我想在所有三个都完成后进行最后一次回调。

$('#button').click(function() {
    fun1();
    fun2();
    fun3();
//now do something else when the requests have done their 'success' callbacks.
});

var fun1= (function() {
    $.ajax({/*code*/});
});
var fun2 = (function() {
    $.ajax({/*code*/});
});
var fun3 = (function() {
    $.ajax({/*code*/});
});

最佳答案

看起来您已经找到了一些答案,但我认为这里有一些值得一提的地方可以大大简化您的代码。 jQuery 引入了 $.when在 v1.5 中。看起来像:

$.when($.ajax(...), $.ajax(...)).then(function (resp1, resp2) {
    //this callback will be fired once all ajax calls have finished.
});

没有看到这里提到它,希望它有所帮助。

关于多个 ajax 调用的 jQuery 回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4368946/

相关文章:

javascript - JS : calculate savings based on last element of a list

javascript - 访问ajax之外的变量

javascript - 如何防止用户在我的测验中选择多个答案?

jQuery "Each"函数值

javascript - ember 模板中的循环完成后执行 jQuery 函数

JAVA:使用 if-cond 调用相同的方法,而不执行进一步的(旧)代码

clojure - 当 Clojure promise 实现或失败时,如何听取它?

javascript - 以某种方式将自动完成 Div 与条目文本框附加在一起

ajax - 使用 Ajax 刷新页面

C++ Boost 函数回调。如何调用函数作为回调并在内部传递参数?