例如:
ajaxCall() {
$.ajax({
...
...
success: function(response) {
event2();
}
});
}
如果我们有这样的电话:
event1();
ajaxCall();
event3();
是否始终保证事件的执行顺序 event1()然后event2()和event3()没有设置异步标志?
答案 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();