題目的本質(zhì)的考察setTimeout帮毁、promise、async await的實(shí)現(xiàn)及執(zhí)行順序豺撑。
一烈疚、event loop
js主線程不斷的循環(huán)往復(fù)的從任務(wù)隊(duì)列中讀取任務(wù),執(zhí)行任務(wù)聪轿,這種運(yùn)行機(jī)制稱為事件循環(huán).
二爷肝、Microtasks、Macrotasks
Microtasksd的優(yōu)先級(jí)要高于Macrotasks。
1.每一個(gè)event loop都有一個(gè)microtask queue
2.每一個(gè)event loop 會(huì)有一個(gè)或者多個(gè)macrotask queue
3.一個(gè)任務(wù)task可以放入macrotask queue也可以放入灯抛,microtask queue中
4.每一次event loop 金赦,會(huì)首先執(zhí)行Microtask queue,執(zhí)行完成后对嚼,會(huì)提取macrotask queue的一個(gè)任務(wù)加入microtask queue接著繼續(xù)執(zhí)行microtask queue夹抗,依次執(zhí)行下去直至所有任務(wù)執(zhí)行結(jié)束。