console.log(1);
function foo(){
return new Promise((resolve,reject)=>{
setTimeout(()=>resolve(),2000);
})
}
foo().then(()=>{
console.log(2);
})
queueMicrotask(() => {
console.log(3);
});
为什么输出了 1 3 2
如果队列是先进先出的话 应该为按顺序执行 1 2 3
3
会被2
阻塞2秒
foo中的宏任务执行的优先级比外层方法queueMicrotask低吧