JS 宏任务 微任务
时间: 2023-08-31 13:08:58 浏览: 93
JS事件循环机制event loop宏任务微任务原理解析
JS中的宏任务(macro task)和微任务(micro task)是用来管理异步任务执行顺序的概念。
宏任务是由浏览器提供的异步任务,比如setTimeout、setInterval、I/O操作等。宏任务会被放入到事件队列(event queue)中,在主线程中执行。当主线程空闲时,会从事件队列中取出一个宏任务进行执行。
微任务是由JavaScript引擎提供的异步任务,比如Promise的回调函数、MutationObserver等。微任务会在当前宏任务执行完毕后立即执行。微任务的执行时机在宏任务之前,这意味着它们具有更高的优先级。
在一次事件循环中,当一个宏任务执行完成后,会立即检查是否有微任务需要执行。如果有,则依次执行所有的微任务,直到微任务队列为空。然后再执行下一个宏任务。
简而言之,宏任务是由浏览器提供的异步任务,而微任务是由JavaScript引擎提供的异步任务。在事件循环中,微任务具有更高的优先级,会在下一个宏任务之前执行。
阅读全文