Jquery的回调执行顺序成功和何时

时间:2017-05-09 16:56:32

标签: javascript jquery

具有以下代码,执行回调函数的顺序是什么?

根据我的测试showData()总是最后执行,但这些操作非常简单,如果我有更复杂的操作,$.when(...).then(callback)总是等待success回调完成在执行之前?这是一个fiddle,以便于测试。

function showData() {
      console.log("show data after when");
    //can i be sure that method1 success and method2 success have finished?
}

function method1() {
    return $.ajax('https://jsfiddle.net/echo/jsonp/', {
        dataType: 'jsonp',
        success: function(){ console.log("method 1 success")}
    });
}

function method2() {
    return $.ajax('https://jsfiddle.net/echo/jsonp/', {
        dataType: 'jsonp',
        success: function(){ console.log("method 2 success")}
    });
}

$.when(method1(), method2()).then(showData);

1 个答案:

答案 0 :(得分:0)

根据jquery docs

的信息
  

描述:提供一种基于零个或多个Thenable对象执行回调函数的方法,通常是表示异步事件的Deferred对象。

$.when()提供了一种在这种情况下执行回调函数的方法 showData()函数。

是的,这会像你预测的那样奏效。