Event lop事件循环机制总结

2020-10-08  本文已影响0人  panergongzi

微任务和宏任务

任务队列又分为macro-task(宏任务)与micro-task(微任务),在最新标准中,它们被分别称为task与jobs。

macro-task大概包括:script(整体代码), setTimeout, setInterval, setImmediate, I/O, UI rendering。

micro-task大概包括: process.nextTick, Promise, Object.observe(已废弃), MutationObserver(html5新特性)

js代码执行顺序

1,从上往下执行,遇到setTimeout,setInterval等宏任务添加到宏任务队列,遇到promise等微任务添加到微任务队列,同步代码执行完之后,执行微任务队列。

2,执行下一个宏任务,比如setTimeout函数体里面的,先执行同步代码,然后执行微任务代码,遇到宏任务就添加到宏任务队列

3,new Promise()函数体里面的代码为同步代码会同步执行,.then里的代码为异步代码。

参考前端基础进阶(十四):深入核心,详解事件循环机制 - 简书

上一篇 下一篇

猜你喜欢

热点阅读