Event LoopJavaScript 中实现异步编程的核心机制。下面是 Event Loop 的执行过程:

  1. 执行同步任务,这些任务在主线程中按照顺序执行。

  2. 执行微任务。当同步任务执行完后,会检查是否有微任务需要执行。如果有,那么按照它们被添加的顺序依次执行。微任务主要包括 Promise 的回调函数、MutationObserver 的回调函数等。

  3. 执行宏任务。宏任务分为两种:一种是浏览器自带的宏任务,比如 setTimeoutsetInterval 等;另一种是由用户自定义的宏任务,比如通过 setTimeoutsetInterval 设置的定时器、通过 XMLHttpRequest 发送的网络请求等。

  4. 重复执行第 2 步和第 3 步,直到任务队列中的任务全部执行完毕。

需要注意的是,在每次执行完宏任务后,都要先执行微任务,然后才能执行下一个宏任务。这个顺序是固定的,不能改变。这也是为什么 Promisethen 回调总是比 setTimeout 的回调先执行的原因。

如果对你有用的话,可以打赏哦
打赏
ali pay
wechat pay

本文作者:叶继伟

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!