我的问题是一个奇怪的一个,如标题所述。 下面的代码:
情况1:
var first = $.ajax({ // about 500ms request
url: myUrl
success: function() { console.log(1); }
});
var second = $.ajax({ // about 200 ms request
url: myUrl
success: function() { console.log(2); }
});
$.when(first, second).done(function() { console.log(3); });
日志2,1,3,所有的好,正是我想要的。
案例2:
var first = $.ajax({ // about 500ms request
url: myUrl
success: function() { console.log(1); }
});
var second = $.ajax({ // about 200 ms request
url: myUrl
success: function() { console.log(2); }
});
function logthree() {
console.log(3);
}
$.when(first, second).done(logthree());
原木3,2,1,这是一个问题。 该logthree()函数应该只执行一次第一和第二的决心。
为什么会出现这种情况? 我如何使用第2种情况没有任何问题?
注:同样的事情发生,如果第一和第二是功能,它们返回$阿贾克斯。
注:同样的事情发生,如果第一和第二都是$不用彷徨。