这部分内容源于知乎上的一个提问。
setTimeout(function(){
console.log(4)},0);
new Promise(function(resolve){
console.log(1)
for( var i=0 ; i<10000 ; i++ ){
i==9999 && resolve()
}
console.log(2)
}).then(function(){
console.log(5)
});
console.log(3);
// 1
// 2
// 3
// 5
// 4
之前我们说过then
方法添加的回调函数都是异步执行的,所以按照我们正常的认知,结果应该是12345
,因为4
是先添加到异步队列,而5
在之后添加到异步队列。
知乎的问题也有何幻大神详细的讲解