js 巨集任務與微任務總結

2021-10-23 02:01:37 字數 830 閱讀 7267

script settimeout setinterval messagechannel postmessage setimmediate requestanimationframe i/o操作 ui渲染

process.nexttick mutationobserver promise.then

主線程script>

微任務process.nexttick>promise>

巨集任務settimeout>setinterval>setimmediate>i/o>ui rendering

mouse click , keypresses, network events

主線程script執行完=> 執行所有微任務=> 執行棧中第乙個巨集任務=> 執行所有微任務=> 執行棧中第乙個巨集任務=>…

舉個例子,列印順序就是數字順序:

settimeout((

)=> console.

log(2)

,0);

settimeout((

)=>);

console.

log(5)

});settimeout((

)=> console.

log(8)

,0);

},0)

;settimeout((

)=> console.

log(7)

,0);

promise.

resolve()

.then((

)=>);

>console.log(0)); //瀏覽器環境注釋此句

關注下再走唄 +_+

巨集任務與微任務

之前我們討論過js 執行的同步和非同步,js的單執行緒執行機制不會改變 但是僅僅懂得同步非同步是遠遠不夠的 比如說下面這些 1 settimeout function 4new promise function resolve,reject then function 10 console.log ...

巨集任務與微任務

js是單執行緒,所以也可以說是主線程,所以js 都是在主線程執行的,只不過我們要區分它是同步執行還是非同步執行 當乙個 是非同步的話,對應的是 函式。不同的任務對應不同的 比如 定時器的 傳送js的 對應事件的 定時器模組,網路請求模組,事件處理模組,的執行取決於模組什麼時候將 函式放入到事件佇列e...

JS微任務和巨集任務

1.巨集任務 包括整體 script,settimeout,setinterval i o ui 互動事件 setimmediate node.js 環境 2.微任務 promise mutaionobserver process.nexttick node.js 環境 promise.resolv...