2019-03-21 事件循环、任务队列

2019-04-12  本文已影响0人  忙于未来的民工

引擎:解释并编译代码,使其能够直接在机器上运行

runtime:运行时,或者称之为运行环境。比如浏览器环境和node环境,不同的环境上会有提供不同的api以及接口

任务队列

js中任务队列有两类:宏任务队列和微任务队列。

宏任务队列(macrotask):全局script setTimeout, setInterval, ajax,setImmediate, I/O, UI rendering.

微任务(microtask):Promise, Object.observer, MutationObserver.

事件循环机制

1:主线程先取一个宏任务队列的任务执行

2:取一个微任务进行执行,执行完毕后,接着取微任务执行,直到微任务执行完毕

3:更新ui渲染

更新ui渲染比较耗时,所以是否进行ui渲染取决于浏览器。

当同步代码执行完毕以后,先检查微任务队列,把微任务队列迭代空,再取一个宏任务到主线程执行,宏任务执行完毕再检查微任务队列,接着再取宏任务队列,依次循环

注意:与node的执行顺序不同。

上一篇 下一篇

猜你喜欢

热点阅读