macrotask 巨集任務 + microtask 微任務區別
- macrotasks: setTimeout setInterval setImmediate I/O UI渲染
- microtasks: Promise process.nextTick Object.observe MutationObserver
process.nextTick(() => {
console.log('nextTick')
})
Promise.resolve()
.then(() => {
console.log('then')
})
setImmediate(() => {
console.log('setImmediate')
})
console.log('end')
//end
//nextTick
//then
//setImmediate
//解釋:process.nextTick 和 promise.then 都屬於 microtask,
而 setImmediate 屬於 macrotask,在事件迴圈的 check 階段執行。
事件迴圈的每個階段(macrotask)之間都會執行 microtask,
事件迴圈的開始會先執行一次 microtask。
參考:
https://juejin.im/entry/58332d560ce46300610e4bad
https://segmentfault.com/a/1190000008866165
http://www.jb51.net/article/57882.htm
相關文章
- 巨集任務和微任務
- JavaScript巨集任務和微任務JavaScript
- 任務佇列,巨集任務與微任務佇列
- Event Loop、 巨集任務和微任務OOP
- JavaScript的巨集任務與微任務JavaScript
- 微任務、巨集任務與Event-LoopOOP
- js中的巨集任務和微任務JS
- 微任務和巨集任務哪個先執行
- JS中EventLoop、巨集任務與微任務的個人理解JSOOP
- javascript事件環微任務和巨集任務佇列原理JavaScript事件佇列
- 前端急速解決非同步之微任務和巨集任務前端非同步
- 瞭解js執行機制——微任務與巨集任務JS
- 關於非同步方法中的巨集任務與微任務非同步
- JS事件迴圈機制(event loop)之巨集任務/微任務JS事件OOP
- async與await以及巨集微任務AI
- js的setTimeout和Promise—同步非同步和微任務巨集任務JSPromise非同步
- JavaScript的事件迴圈與巨集微任務JavaScript事件
- node基礎面試事件環?微任務、巨集任務?一篇帶你飛面試事件
- 總結:JavaScript非同步、事件迴圈與訊息佇列、微任務與巨集任務JavaScript非同步事件佇列
- UI 阻塞行為:微任務與宏任務UI
- 使用ant巨集定義任務
- javaScript 之 蟻人<微任務>JavaScript
- 如何理解 JS 非同步程式設計的,EventLoop、訊息佇列,什麼是巨集任務,什麼是微任務?JS非同步程式設計OOP佇列
- 你可能不瞭解的 Promise 微任務型別Promise型別
- 詳解JavaScript的任務、微任務、佇列以及程式碼執行順序JavaScript佇列
- 任務
- Android程式(Processes)和任務(tasks)的區別Android
- SpringBoot與非同步任務、定時任務、郵件任務Spring Boot非同步
- 任務系統之Jenkins子任務Jenkins
- 任務池
- 任務05
- crontab任務
- 任務四
- 近日任務
- 任務。1
- 任務1
- 任務4
- 任務一