一、事件循环机制
1. 定义:事件循环是 JavaScript 中一种重要的异步执行机制。
2. 作用:管理和协调各种异步任务的执行顺序,保证 JavaScript 代码的执行顺序和预期一致。
3. 组成部分:
3.1 主线程(调用栈):执行任务;
3.2 任务队列:存放异步任务;
3.3 事件循环线程:检查任务队列里面的异步任务,有的话将异步任务调入主线程执行。
4. 任务队列:
4.1 宏任务队列:setInterval()、setTimeout()、setImmediate()、ajax、事件绑定;
4.2 微任务队列:new Promise() 后的 then 与 catch 函数、new MutaionObserver()、process.nextTick(Nodejs)。
5. 总结:
5.1 初始的同步任务可以看作是一次宏任务的执行;(实际上不是宏任务)
5.2 宏任务执行完毕,事件循环线程自动检查【微任务队列】并将所有检查到的 微任务 调入主线程执行;(若检查无微任务,则直接去检查宏任务队列)
5.3 所有微任务执行完毕,事件循环线程自动检查【宏任务队列】并将检查到的 宏任务 调入主线程执行;(若无宏任务,任务队列为空)
5.4 重复 5.2,5.3 步骤,直至任务队列为空的过程称之为任务循环。
引用一下 @恰巧喜欢 大佬的图:
标签:异步,队列,JavaScript,笔记,任务,循环,执行 From: https://www.cnblogs.com/foreveronlymiss/p/17564420.html