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
问题很简单:如何我可以得到当时的等待彼此吗?
谢谢!