JavaScript知识点-事件循环eventLoop

131 阅读1分钟

事件循环

什么是事件循环

事件循环,是程序内部的一种结构,其在初始事件之后控制和分派事件。初始事件可以是任何东西。

在轮询设备之后,事件循环将根据编程分派一个事件,该事件产生所需的效果。这称为循环,不是因为事件循环并持续发生,而是因为循环为事件做准备,检查事件,发送一个事件并再次重复该过程。

而在实际中,事件循环是编码文档的中心逻辑,实以常被称为主循环

js中的事件循环

js是一门单线程语言,故而如果要在js中实现并发,只能借助基于事件循环的并发模型实现。

js事件循环的组成以及执行

如同所示:js中事件循环有如下几个主要构成部分:主线程、函数执行的执行栈、宏任务队列、微任务队列。

在js的任务执行期间,如果为同步调用,则将同步函数的上下文压入执行栈中,如果同步函数内部存在另一个同步函数则同步压入执行栈中。

而在该执行之前会判断宏任务队列中是否存在可执行的任务,若存在,则执行可执行的第一个任务。

而在执行栈将任务执行完毕,清空执行栈后,若遇到微任务消息队列的执行通知,则执行微任务队列中所有可执行的任务。

eventLoop流程图.png