javaScript 宏任务微任务

 

 

Js - 单线程的语言,所以它本身不可能是异步的,但js的宿主环境(比如浏览器,Node)是多线程的,宿主环境通过某种方式(事件驱动,)使得js具备了异步的属性

 

任务队列:

所有的任务可以分为两种,一种是同步任务(synchronous),另外一种是异步任务(asynchronous)。同步任务指的是,在主线程上,排队执行的任务,只有前一个任务执行完毕,才能执行后一个任务;异步任务指的是,不进入主线程,而进入任务队列task queue)的任务,只有任务队列通知主线程,某个异步任务可以执行了,该任务才会进入主线程执行。

javaScript 宏任务微任务

 

 

 

javaScript 宏任务微任务

 

宏任务: scriptsetTimeoutsetInterval

javaScript 宏任务微任务

 

微任务: Promiseprocess.nextTick new MutationObserver

javaScript 宏任务微任务

 

例子:

https://jakearchibald.com/2015/tasks-microtasks-queues-and-schedules/?utm_source=html5weekly