先来看看以下的代码,看看执行的顺序是什么?
console.log("1");
setTimeout(() => {
console.log("2");
new Promise((reslove)=>{
console.log("3");
reslove()
}).then(()=>{
console.log("4");
})
}, 0);
new Promise((reslove)=>{
console.log("5");
reslove()
}).then(()=>{
console.log("6");
})
console.log("7");
我们来看看答案:1 5 7 6 2 3 4
这是我的理解:宏任务和微任务, settimeout属于宏任务,
promise属于微任务,正常情况下,先执行完同步队列的任务,
再执行异步队列中的微任务,最后才执行异步队列中的宏任务