本文主要是介绍宏任务和微任务,看不懂你举报我,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
什么是宏任务,什么是微任务?
宏任务(Macro Task)和微任务(Micro Task)是JavaScript中异步任务的两种分类,它们主要涉及到JavaScript的事件循环和任务调度机制.
宏任务
宏任务是指在当前执行栈执行完毕后立即执行的任务, 例如
setTimeout,setInterval,setImmediate(nodejs特有),I/O(文件读写操作,Node.js特有),UI渲染(浏览器特有)
微任务
微任务是指在当前执行栈执行完毕后,立即执行的任务,但⚠️微任务的优先级高于宏任务,但慢于同步任务.
Promise.then / Promise.catch / Promise.finally, process.nextTick (Node.js特有),MutationObserver(浏览器特有)
任务调度机制
JavaScript的任务调度机制总体上可以描述为以下流程:
- 执行全局脚本中的同步代码。
- 执行完同步代码后,检查微任务队列。如果队列中有微任务(例如由
Promise.then()
安排的任务),则执行这些微任务。 - 完成所有微任务后,如果有必要的话,进行渲染更新(浏览器环境中)。
- 开始下一个宏任务的执行(例如,
setTimeout
、setInterval
或其他异步API调度的任务)。 - 重复上述步骤,循环进行。
这篇关于宏任务和微任务,看不懂你举报我的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!