事件循環(huán)機(jī)制-宏任務(wù)-微任務(wù)

事件循環(huán)機(jī)制

  • 瀏覽器事件循環(huán)機(jī)制
  • node事件循環(huán)機(jī)制
    事件循環(huán)機(jī)制分別有瀏覽器事件循環(huán)機(jī)制和node事件循環(huán)機(jī)制,今天記錄一下瀏覽器事件循環(huán)機(jī)制。

瀏覽器事件循環(huán)機(jī)制

1.js腳本執(zhí)行是單線程的,其中分為主線程,宏任務(wù),微任務(wù)。
1.1 主線程可以理解為js從上到下依次執(zhí)行
1.2 宏任務(wù)有script setTimeout setInterval 等
1.3 微任務(wù)主要有promise
2.執(zhí)行主線程代碼,遇到宏任務(wù)會(huì)將宏任務(wù)中的回調(diào)放置在宏任務(wù)隊(duì)列中,當(dāng)遇到了promise的時(shí)候,將.then里的回調(diào)放置微任務(wù)隊(duì)列中,主線程執(zhí)行完成之后,先從微任務(wù)隊(duì)列中里拿出任務(wù)執(zhí)行,微任務(wù)執(zhí)行完成之后在從宏任務(wù)隊(duì)列里拿出任務(wù)執(zhí)行。宏任務(wù)里面可能還有其他的宏任務(wù),微任務(wù)這個(gè)時(shí)候他們的任務(wù)會(huì)放在下一次循環(huán)中執(zhí)行,如此循環(huán)就是瀏覽器的事件循環(huán)機(jī)制。
3.下面給倆個(gè)例子大家看一下就明白了。


事件循環(huán)機(jī)制.png

圖中白色截圖就是打印結(jié)果,方便大家理解。
4.在記錄一個(gè)知識(shí)點(diǎn)new promise 是創(chuàng)建一個(gè)對(duì)象,是主線程哦。


事件循環(huán)機(jī)制2.png

文章為本人學(xué)習(xí)記錄使用,如有錯(cuò)誤歡迎大家指點(diǎn)。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容