码迷,mamicode.com
首页 > Web开发 > 详细

js事件队列

时间:2020-03-18 21:48:17      阅读:96      评论:0      收藏:0      [点我收藏+]

标签:oop   浏览器   set   val   轮询   不执行   interval   处理   事件队列   

1.js的执行是单线程的。

2.而当它遇到了window的setTimeout和setInterval这样的异步任务,js都默默地先不执行这些回调,而是继续向下执行其他js脚本,等到所有js脚本都解析执行完了,再执行回调。


3.那么有多个回调的时候执行顺序是怎么样的呢?

浏览器是多线程的,js执行线程只是它多个线程中的一个。

当js的执行线程看到了setTimeout,浏览器马上会调用其他线程把这个函数中的回调扔到浏览器的事件队列中,事件队列是先入先出的队列。

那么在js执行线程执行完所有脚本空闲的时候,事件队列中的事件回调,会一个一个被拿出来执行。

浏览器有一个内部大消息循环Event Loop(事件循环),会轮询事件队列并处理事件。

js事件队列

标签:oop   浏览器   set   val   轮询   不执行   interval   处理   事件队列   

原文地址:https://www.cnblogs.com/xzybk/p/12520444.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!