微任务和宏任务谁先执行
时间: 2023-11-02 16:31:05 浏览: 76
在 JavaScript 中,宏任务和微任务都可以被添加到事件循环队列中,但它们的执行顺序是不同的。
当执行一个宏任务时,它会执行完整个任务,包括其中的微任务队列,然后才会执行下一个宏任务。而在宏任务执行过程中,如果产生了微任务,那么这些微任务会被添加到微任务队列中,等待宏任务执行完毕后执行。
因此,微任务的执行优先级要高于宏任务。也就是说,当当前宏任务执行完毕后,会立即执行所有已经添加到微任务队列中的微任务,然后才会执行下一个宏任务。
相关问题
微任务和宏任务 顺序
微任务和宏任务的执行顺序是有区别的。在每一个宏任务中又可以产生微任务,当微任务全部执行结束后执行下一个宏任务。这样的执行顺序可以表示为【宏任务 [微任务】 -> 【宏任务 [微任务】 -> 【宏任务 [微任务】... 宏任务。具体来说,当一个宏任务开始执行时,如果在宏任务的执行过程中产生了微任务,那么这些微任务会被添加到微任务队列中。当当前宏任务执行完成后,会立即执行微任务队列中的任务,直到微任务队列为空。然后才会执行下一个宏任务。这样的执行顺序保证了微任务优先于下一个宏任务的执行。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* [干货:宏任务和微任务执行顺序详解](https://blog.csdn.net/frontend_frank/article/details/130096892)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
- *3* [微任务和宏任务哪个先执行?](https://blog.csdn.net/qq_59737146/article/details/128814404)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
微任务和宏任务是什么
微任务和宏任务是异步任务的两种分类。宏任务包括整体代码(即外层同步代码)、setTimeout、setInterval、I/O、UI渲染等。微任务包括Promise、async/await、promise.then/catch/finally、事件队列等。宏任务和微任务的执行顺序是先执行主线程执行栈中的代码(同步任务),然后将异步宏任务放入宏任务队列中,将异步微任务放入微任务队列中。当所有同步代码执行完毕后,会先执行微任务队列中的微任务,直到微任务队列被清空,然后再执行宏任务队列中的宏任务,循环往复,直至所有任务执行完毕。简言之,微任务优先于宏任务执行,即当微任务队列的所有任务全部执行完后,才开始执行宏任务。\[1\]\[2\]\[3\]
#### 引用[.reference_title]
- *1* [宏任务与微任务](https://blog.csdn.net/ghc19980122/article/details/129099769)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* [宏任务与微任务的理解](https://blog.csdn.net/weixin_47981807/article/details/122309155)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
- *3* [什么是宏任务微任务](https://blog.csdn.net/zyj123__/article/details/126810716)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
阅读全文