常见问题与场景
设计目标:微任务用于处理高优先级更新(如Promise状态变更),
确保在渲染前完成数据更新,避免UI不一致。
归类争议:通常认为其回调在渲染前执行,
但具体实现可能因浏览器而异,建议单独处理。
时机:在微任务队列清空后、下一轮宏任务前,
浏览器可能选择是否渲染。
总结对比表
特性 宏任务(Macro Task) 微任务(Micro Task)
执行时机 事件循环的每一轮中执行一个
当前宏任务结束后立即全部执行
优先级 低 高
常见类型 setTimeout、I/O、DOM事件
Promise.then、MutationObserver
队列处理 单次循环处理一个
单次循环处理全部
嵌套任务影响 新任务进入下一轮循环
新任务继续在当前循环执行
实际应用建议
优化性能:高频操作(如数据更新)
优先使用微任务,减少UI卡顿。
避免阻塞:长时间运行的微任务会阻塞渲染,
需合理拆分任务。
框架中的应用:Vue的异步更新队列、
React的state批处理均依赖微任务机制。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。