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

Posted 布条麻绳

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

以上是关于JS事件循环机制(宏任务,微任务)的主要内容,如果未能解决你的问题,请参考以下文章

JS事件循环机制(event loop)之宏任务/微任务

js的事件循环机制:同步与异步任务(setTimeout,setInterval)宏任务,微任务(Promise,process.nextTick)

js运行机制 (包括宏任务微任务,同步异步,事件循环机制Event Loop)面试常问

JavaScipt 中的事件循环机制,以及微任务 和宏任务的概念

[jS 事件循环理解] 主线程 宏任务 微任务 - 执行顺序优先级理解

第 41 题:请描述一下 Javascript 事件循环机制?