JS事件循环机制(宏任务,微任务)

1: 宏任务:包括整体js代码(script标签下的同步任务代码),setTimeout,setInterval;

2: 微任务:Promise.then(),process.nextTick(Node.js);

3: JS 事件循环机制(event loop)

  (1) 首先执行宏任务,遇到setTimeout, setInterval,放到宏任务队列中;

(2) 遇到微任务(promise.then),放到微任务队列中;

(3)本轮宏任务执行结束,查看这轮是否有微任务,有就去执行;

(4)本轮的event loop执行结束;

(5)执行下一轮event loop,首先执行宏任务,这时宏任务队列中有seiTimeout, setInterval,先执行;然后在开始第一步的执行。

Notes: 

  promise中只有promise.then()是微任务,其他的是宏任务;

 

参考文章:

【朴灵评注】JavaScript 运行机制详解:再谈Event Loop

posted @ 2020-06-01 11:04  布条麻绳  阅读(478)  评论(0)    收藏  举报