微任務和宏任務
微任務和宏任務是異步任務的兩個種類赂乐。
宏任務:當前調用棧中執(zhí)行的代碼成為宏任務。(主代碼塊涕烧,定時器等等)月而。
微任務:當前(此次事件循環(huán)中)宏任務執(zhí)行完,在下一個宏任務開始之前需要執(zhí)行的任務,可以理解為回調事件议纯。(promise.then,proness.nextTick等等)父款。
宏任務中的事件放在callback queue中,由事件觸發(fā)線程維護;微任務的事件放在微任務隊列中瞻凤,由js引擎線程維護憨攒。在掛起任務時,JS引擎會將所有任務按照類別分到這兩個隊伍中阀参,首先在macrotask的隊列中取出第一個任務肝集,執(zhí)行完畢后取出microtask隊列中的所有任務順序執(zhí)行;之后再取macrotask任務,周而復始蛛壳,直至兩個隊列的任務都取完