版权声明:本文为博主原创文章,未经博主允许不得转载。 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 尾部。
全部执行完成后进入下一个事件循环周期。