- js是一門單線程的語言
- 同步任務(wù)放到執(zhí)行棧中依次執(zhí)行
- 異步任務(wù)放到消息隊(duì)列中
- 等同步任務(wù)執(zhí)行完后,把異步任務(wù)的回調(diào)push到執(zhí)行棧中
- 宏任務(wù)是類似于setTimeout之類的
- 微任務(wù)是類似于promise,nextTick之類的
- 先執(zhí)行微任務(wù),再執(zhí)行宏任務(wù)
- 總的來說,就是先執(zhí)行同步任務(wù),在執(zhí)行微任務(wù),最后執(zhí)行宏任務(wù)
例:
console.log(1)
new Promise((resolve, reject) => {
console.log(3)
resolve()
}).then(() => {
console.log(4)
}).then(() => {
console.log(5)
})
setTimeout(() => {
console.log(6)
}, 0)
console.log(2)
輸出結(jié)果 132456
|