javascript - 所有 ajax 调用完成后的事件

标签 javascript jquery ajax events

我有一个触发 3 个 ajax 调用的点击事件:

$("#button").click(function(e) {
    e.preventDefault();

    $.ajax(call1);
    $.ajax(call2);
    $.ajax(call3);

    some_function() //should fire off AFTER all ajax calls are complete
});

在触发我的 some_function() 函数之前,有没有办法让我确认所有 ajax 调用都已触发?

提前致谢!

最佳答案

您可以使用 $.when

Provides a way to execute callback functions based on one or more objects, usually Deferred objects that represent asynchronous events.

$.when($.ajax(call1), $.ajax(call2), $.ajax(call3))
.done(function () {
     some_function();
});

如果(出于某种原因)您有一组 promise ,那么您可以使用 Function.prototype.apply() 调用此方法:

$.when.apply($, ajaxArray)
.done(function () {
   some_function();
});

关于javascript - 所有 ajax 调用完成后的事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35905871/

相关文章:

javascript - 计算特定行中文本区域中的字符数

javascript - Angular $watch |从函数返回项目

javascript - fabricjs 在某些事件不起作用时更改边框大小和颜色

ajax - 使用 Nginx Lua POST 请求表单数据操作

javascript - 中止 ext js 网格存储 ajax 调用

javascript - 如何选择多个元素来捕获 JavaScript 点击事件?

javascript - 在 MySQL 数据库中使用点 - 使用 Node 更新

javascript - jQuery 拖放表行排序不起作用

javascript - 下拉选择错误

javascript - 通过 xmlhttprequest 上传文件生成多部分 : NextPart: EOF