59.宏任务有哪些,pormise.then 是什么任务,nextTick 和一个定时器,哪个更先执行
题目描述
宏任务有哪些,pormise.then 是什么任务,nextTick 和一个定时器,哪个更先执行
答案
执行顺序:nextTick → Promise.then → setTimeout 微任务优先于宏任务,nextTick 是微任务中的最高优先级
- 宏任务列表
宏任务列表 | 说明 | 环境 |
---|---|---|
setTimeout | 定时器回调 | 浏览器/Node.js |
setInterval | 定时器循环回调 | 浏览器/Node.js |
setImmediate | Node.js 中立即执行的宏任务 | Node.js |
I/O 操作 | 文件读写、网络请求等 | 浏览器/Node.js |
UI 渲染 | 浏览器页面重绘 | 浏览器 |
requestAnimationFrame | 浏览器动画帧回调(部分浏览器中属于宏任务) | 浏览器 |
- 微任务列表
微任务列表 | 说明 | 环境 |
---|---|---|
process.nextTick | Node.js 中优先级最高的微任务 | Node.js |
Promise.then | Promise.then | 浏览器/Node.js |
MutationObserver | DOM 变化监听回调 | 浏览器 |
Object.observe | 浏览器微任务 | 浏览器 |
MutationObserver | 浏览器微任务 | 浏览器 |
Promise.resolve().then | Promise 链式回调 | 浏览器/Node.js |