javascript - 如何从 Javascript 同步运行 Ajax 函数?

标签 javascript jquery

我有以下代码:

$('#DoButton').click(function (event) {
  event.preventDefault();
  $("input:checked").each(function () {
    var id = $(this).attr("id");
    $("#rdy_msg").text("Starting" + id);
    doAction(id);
  });
});

function doAction(id) {
            var parms = { Id: id };
            $.ajax({
                type: "POST",
                traditional: true,
                url: '/adminTask/doAction',
                async: false,
                data: parms,
                dataType: "json",
                success: function (data) {
                    $("#rdy_msg").text("Completed: " + id);
                },
                error: function () {
                    var cdefg = data;
                }
            });
        }

当单击按钮时,它会检查表单,并为每个检查的输入调用 doAction(),然后 doAction() 调用 Ajax 函数。我想让它全部同步,在一个调用完成和下一个调用运行之间有 2 秒的延迟。延迟是为了让用户有时间看到最后一个操作已完成。

通过设置 async=false 真的会让 ajax 函数等待吗?

如何在 Ajax 运行之后、下次调用 doAction 之前添加 2 秒的等待?

最佳答案

jQuery 中有一个选项可以设置 ajax 函数同步

$.ajaxSetup({
   async: false
});

要使函数等待,您可以使用 .delay()

尝试 this 的解决方案还有问题。

关于javascript - 如何从 Javascript 同步运行 Ajax 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6482333/

相关文章:

jquery - 响应式 Bootstrap 数据表未在正确的点折叠列

javascript - 对闭包内创建的事件调用闭包函数

javascript - 刷新客户端网页时如何重新连接到 Web Socket

javascript - 具有重叠数据点的 d3.js voronoi

javascript - 有什么方法可以检查变量是否是真正的 jqXHR?

javascript - 按顺序显示动态复选框

javascript - 单击我网站上的任何链接 (a) 时如何运行 jQuery 函数

javascript - Mocha JS : How to reference members from asynch before function in describe/it test functions

javascript - Jquery isEmptyObject 返回 true,即使它不是

javascript - wrapAll() 正在创建双倍的 div?