0
針說我做錯了什麼。我需要一些幫助來搞清楚它是什麼。Javascript承諾:然後()的不同步
考慮下面的代碼(我的問題的簡化版本):
function testTimer(time, msg,resolve){
console.log(arguments.callee.name);
window.setTimeout(
function() {
console.log("MSG:", msg);
if(resolve !== undefined)
resolve(1);
}, time * 1000);
}
new Promise(function(resolve, reject) {
testTimer(1, 'ONE', resolve);
}).then(function(resolved){testTimer(9, 'TWO');}, function(rejected){alert("Rejected!", reject)})
.then(function(resolved){testTimer(1, 'THREE'); }, function(rejected){alert("Rejected!", reject)});
預期的輸出是:
ONE
TWO
THREE
相反由於第一然後要求9秒執行和第二然後需要1秒執行我得到:
ONE
THREE
TWO
問題很簡單:如何我可以得到當時的等待彼此嗎?
謝謝!