异步操作中的宏任务与微任务
时间: 2023-11-02 16:54:31 浏览: 101
18-宏任务和微任务:不是所有任务都是一个待遇_For_vip_user_0011
在异步操作中,宏任务和微任务是两种不同的任务类型,它们决定了执行顺序和优先级。
宏任务(Macrotask)是一组需要异步执行的任务,通常包括以下几种:
1. setTimeout 和 setInterval 回调函数
2. DOM 事件处理程序
3. XMLHttpRequest 和 fetch 的回调函数
4. Node.js 中的 I/O 操作
宏任务会进入事件队列(event queue),在主线程空闲时被执行,每次只执行一个宏任务。
微任务(Microtask)是一组需要在当前任务执行完成后尽快执行的任务,通常包括以下几种:
1. Promise 的回调函数
2. MutationObserver 的回调函数
微任务会在当前任务执行完成后立即执行,而不需要等待其他宏任务。微任务的执行优先级高于宏任务,即微任务会在下一个宏任务之前执行。
在事件循环中,每次执行完一个宏任务后,会检查是否有微任务需要执行,如果有,则会依次执行所有微任务,直到微任务队列为空,然后再继续执行下一个宏任务。
总结起来,宏任务和微任务的区别在于执行时机和优先级。宏任务是异步任务中较大的单位,而微任务是较小的单位,用于在当前任务执行完成后尽快执行。
阅读全文