事件轮询是指在JavaScript中,当执行栈为空时,会检查是否有待处理的事件。如果有,就会从事件队列中取出一个事件,并执行相关的回调函数。

宏任务(macro task)是指由浏览器提供的任务,如setTimeout、setInterval、ajax异步请求等。宏任务会被放入宏任务队列中,在事件轮询时执行。

微任务(micro task)是指由JavaScript引擎提供的任务,如Promise、MutationObserver等。微任务会被放入微任务队列中,在事件轮询结束后,执行微任务队列中的所有任务。

理解上,可以将事件轮询看作是一个循环,不断地从宏任务队列中取出宏任务执行,并检查是否有微任务需要执行,如果有,则执行微任务,直到事件队列为空为止。宏任务和微任务的区别在于执行时机,宏任务在事件轮询阶段执行,而微任务在事件轮询结束后、下一个事件轮询开始前执行。

JavaScript 事件循环:宏任务、微任务和事件轮询详解

原文地址: https://www.cveoy.top/t/topic/p0xi 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录