首页 >web前端 >js教程 >Javascript事件循环规则详解

Javascript事件循环规则详解

DDD
DDD原创
2024-11-07 22:44:03672浏览

Detailed explanation of Javascript event loop rules

众所周知,Javacript 是单线程语言,但是为什么我们可以使用异步操作呢?因为异步操作是由具有多线程、多进程能力的浏览器执行的。 Javascript始终运行在单线程上,当异步代码被发现时,就会交给浏览器执行,然后浏览器调用相应的线程或进程,包括http请求、GUI、事件触发等来处理这些异步操作.

一般来说,Javasctip 任务可以分为三类:同步任务、微任务、宏任务,运行顺序为sync -> 任务。微->宏。首先执行同步代码,然后浏览器会将微代码放入等待同步任务完成的微任务队列中,并将宏代码放入等待微代码完成的宏任务队列中。
这个优先级顺序类似于OS上的多级反馈队列调度算法。

常见微任务:Promise.then()、Promise.catch()、new MutationObserver()、process.nextTick()
常用宏任务:setTimeout、setInterview、requestAnimationFrame()

顺便说一下,process.nextTick() 既不是微任务也不是宏任务,它只是在同步代码之后、微任务之前运行。

以上是Javascript事件循环规则详解的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn