具有以下代码,执行回调函数的顺序是什么?
根据我的测试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);
答案 0 :(得分:0)
描述:提供一种基于零个或多个Thenable对象执行回调函数的方法,通常是表示异步事件的Deferred对象。
$.when()
提供了一种在这种情况下执行回调函数的方法 showData()
函数。