2024-04-11 02:29:51
说到JavaScript的事件循环(Even loop)就会提到同步事件和异步事件
整个JS在运行过程中主要执行以下事件循环
上面就是一个简单的事件循环过程,那么在异步任务中还有宏任务和微任务的区别,他们具体的定义如下
微任务是异步任务中最早开始执行的,它可以是同步任务、宏任务执行时产生的,微任务能够在 实时性和效率 之间做一个有效的权衡,一般可以总结为一下几个方法
这里 Promise 、 Async/Await 、 Object.observe 以及 MutationObserver ,都是 JS语法内置的方法 , 不需要浏览器支持,可以理解为直接用JS引擎就能处理掉的任务
可以理解为每一个宏任务进程中都包含了一个微任务进程, 事件的触发 、 非JS部分 以及 定时器 都可以归为宏任务
宏任务会触发新一轮的事件循环,下图就是宏微任务的执行流程图,
https://juejin.cn/post/6932263539839074311?utm_source=gold_browser_extension#heading-2
https://www.jianshu.com/p/75107522813f
https://www.jianshu.com/p/bfc3e319a96b
https://juejin.cn/post/6880787856353132552
https://www.cnblogs.com/fangdongdemao/p/10262209.html