對(duì)于 JS 運(yùn)行中的任務(wù)肯腕,JS 有一套處理收集,排隊(duì)钥平,執(zhí)行的特殊機(jī)制实撒,我們把這套處理機(jī)制稱為事件循環(huán)(Event Loop)
宏任務(wù)、微任務(wù):宏任務(wù)就是普通異步任務(wù)涉瘾,是最早出現(xiàn)的知态,微任務(wù)更關(guān)乎用戶體驗(yàn),所以得優(yōu)先執(zhí)行
常見宏任務(wù):定時(shí)器立叛、IO任務(wù)
常見微任務(wù):queueMicrotask负敏、await、then
demo
執(zhí)行順序? aaa囚巴、111 原在、222、bbb 彤叉、333庶柿、444、t1秽浇、t2
解析:
1.首先執(zhí)行 aaa? ?遇到t1放入任務(wù)隊(duì)列
2.再執(zhí)行111 222 (async 是異步函數(shù) 但函數(shù)本身是同步?await相當(dāng)于then ) 333和后面的將被放入微任務(wù)隊(duì)列 接著執(zhí)行bbb
3.當(dāng)前任務(wù)完成 先執(zhí)行微任務(wù)隊(duì)列 333 t2放入任務(wù)隊(duì)列 然后444 所有微任務(wù)完成 執(zhí)行任務(wù)隊(duì)列 t1? t2