事件循环中的 event loop queue 和单个事件循环周期中的 job queue

event loop queue

js事件循环由一个 event loop queue 来管理,每当一个事件循环周期完成,会取 event loop queue 最前面的任务来执行,从而进入下一个事件循环周期。

setTimout、setInterval 方法告诉浏览器在一定时间后将任务函数放入 event loop queue 尾部。

在ajax请求得到响应后,浏览器会将相关的回调函数放入 event loop queue 尾部。

onclick 等事件被触发后,浏览器会将相关的回调函数放入 event loop queue 尾部。

job queue

每一个事件循环周期中有个 job queue。

在每一个事件循环周期中,当 promise 对象状态被修改后,相应的回调函数会被放入 job queue 尾部。

当事件循环周期的主任务完成后,会去执行 job queue 里面的任务。

如果 job queue 中的任务中又有 promise 对象状态的修改,相应的回调函数又会被放入 job queue 尾部。

全部执行完成后进入下一个事件循环周期。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值