ajax回调函数是否保证同步执行?

时间:2016-03-07 22:30:07

标签: javascript ajax callback

例如:

ajaxCall() {
    $.ajax({
      ...
      ...
      success: function(response) {
        event2();
      }
    });
}

如果我们有这样的电话:

event1();
ajaxCall();
event3();

是否始终保证事件的执行顺序 event1()然后event2()和event3()没有设置异步标志?

3 个答案:

答案 0 :(得分:3)

AJAX 异步 JAX :)你的回答是。

如果要进行同步呼叫,则需要设置async: false标志。但是,success回调根本不会被调用,您需要将event2();行放在$.ajax来电的正下方。

另见Mike C's answer。不推荐使用同步调用。

答案 1 :(得分:1)

一般情况下,如果您将async设置为false,那么您就是对的。但是,synchronous AJAX has been deprecated和jQuery officially dropped support for it after v1.8

所以我建议你不要试图使用同步的AJAX请求。

答案 2 :(得分:0)

没有

当触发它的事件(即HTTP响应)发生时,将触发回调函数。

分配回调后立即调用 的功能仍将立即调用

执行顺序仍然是:

event1();
ajaxCall();
    $.ajax();
event3();
success();
    event2();