js的事件循环机制

一、什么是事件循环
事件循环机制:就是同步编程模型,用于异步操作。
(eg:当代码中遇到需要等待一部分操作结果时,js引擎不会一直等待,而是将该语句放入事件队列中,并执行下一步)

二、组成部分
事件队列:用来存储事件的队列(eg:鼠标点击、键盘输入、定时器等);
执行栈:储存正在执行代码的栈;
宏任务:被放入事件队列中的任务;
(eg:setTimeout延迟多少秒执行代码;setInterval设置秒内重复执行代码[定时函数];script整体代码;);
微任务:当前执行完后立即执行的任务;
(eg:Promise的then / catch / finally方法;asaync/await;process.nextTick回调函数延迟在下一次DOM更新数据过后进行调用)

三、执行顺序
1.执行当前执行栈中的顺序
2.当执行栈是空的时候,事件循环会从事件队列中取出一个任务进行执行,该任务是宏任务
3.当宏任务执行完毕后,事件循环会检查是否有微任务需要执行,如果有会依次执行所有微任务,直到微任务队列是空
4.重复执行步骤2-3,直到事件队列和微任务队列均为空

posted @ 2023-08-24 16:37  Ali枝  阅读(52)  评论(0编辑  收藏  举报