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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wlx1991/article/details/83095061

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 尾部。

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

猜你喜欢

转载自blog.csdn.net/wlx1991/article/details/83095061