2016-03-07 99 views
0

例如:ajax回调函数保证同步执行吗?

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

如果我们有一个调用,比如:

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

会是始终保证活动的执行顺序是 事件1(),那么事件2()和EVENT3( )没有设置异步标志?

+1

决不设置'异步:FALSE',没有,订单将不能得到保证,也不应该依赖任何这样的顺序,Ajax调用完成当他们完成时。然而,你似乎要问的是,如果函数将按照该顺序执行,并且他们将会,他们可能不会按照该顺序完成 – adeneo

回答

3

AJAX是异步 JAX :)有你的答案。

如果你想同步调用,您需要设置async: false标志。但随后的success回调将不会在所有调用,你就需要把event2();线仅低于$.ajax电话。

另见Mike C's answer。同步调用已弃用。

0

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

你马上打电话后分配回调函数将仍然被称为立即

执行的顺序仍然是:

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