事件迴圈機制 even loop

2022-09-20 01:48:11 字數 1216 閱讀 2350

總結

輸出結果:1 7 6 8 2 4 9 11 3 10 5 12

setimmediate(() =>, 0);

var time = setinterval(() =>, 0);

settimeout(() =>, 0);

var time1 = setinterval(() =>, 0);

setimmediate(() =>, 0);

process.nexttick(() =>);

new promise((resolve, reject) =>).then(() =>.

catch() =>);

//輸出結果:

//第七行promise【先執行同步】

//第六行 nexttick【微任務】

//第八行 promise then resolve【微任務】

//第二行 setinterval【巨集任務】

//第三行 settimeout【巨集任務】

//第四行 setinterval【巨集任務】

//第一行setimmediate【巨集任務】

//第五行setimmediate【巨集任務】

請注意,node環境下的事件監聽依賴libuv與前端環境不完全相同,輸出順序可能會有誤差!!

請注意:chrome中間層 & node中間層libuv

JS JavaScript事件迴圈機制

首先區分程序和執行緒 瀏覽器的渲染程序是多執行緒的 gui渲染執行緒 js引擎執行緒 事件觸發執行緒 定時觸發器執行緒 非同步http請求執行緒 事件迴圈機制 上 釋 巨集任務 macrotask 和微任務 microtask 先看一段 的執行結果 console.log script start ...

js事件迴圈機制

1 所有同步任務都在主線程上執行,形成乙個執行棧 execution context stack 2 主線程之外,還存在乙個 任務佇列 task queue 只要非同步任務有了執行結果,就在 任務佇列 之中放置乙個事件。3 一旦 執行棧 中的所有同步任務執行完畢,系統就會讀取 任務佇列 看看裡面有哪...

《理解JS 事件迴圈機制》

從面試題了解事件迴圈機制 第一道 請寫出輸出內容 async function async1 async function async2 console.log script start settimeout function 0 async1 new promise function resolv...