多個並行的承諾,我要排隊使用jQuery的遞延/承諾實現多個異步Ajax請求:等待完成後使用jQuery
function doSomething() {
console.log('doSomething')};
function makeMultiAjaxRequests1() {
console.log('makeMultiAjaxRequests1')};
function makeMultiAjaxRequests2() {
console.log('makeMultiAjaxRequests2')};
var step1 = function() {
var promise = new $.Deferred().promise();
makeMultiAjaxRequests1();
return promise; }
var step2 = function() {
var promise = new $.Deferred().promise();
makeMultiAjaxRequests2();
return promise; }
step1()
.then(step2())
.done(doSomething());
$.when(step1(),
step2())
.done(function() {
doSomething();
});
這裏是fiddle link。所以我的問題是:
在step1和step2並行執行的模式中,代碼沒有到達最後一個處理函數。爲什麼?
你在哪裏其實解決的承諾?如果不觸發處理程序,則不會調用回調函數... – Bergi
「step1()」和「step2()」中的延遲永遠不會被解析。 –
雅這是真的,但在前面的順序示例中情況如何?承諾未解決,代碼完成。 – crishushu