宏任务、微任务 个人理解

ES6 规范中,microtask 称为 jobs,macrotask 称为 task

宏任务是由宿主发起的,而微任务由JavaScript自身发起。

主流程、setTimeout  setInterval() 都属于宏任务

await promise 属于微任务

执行主流程时会遇到微任务和宏任务,把微任务放到微任务队列里等待 宏任务放到宏任务队列里,继续往下执行主流程,主流程执行完后执行微任务队列再执行宏任务的队列,执行微任务或者宏任务队列时按照先进先出原则执行任务。

下面举个例子:

1

运行结果


结果

你可能感兴趣的:(宏任务、微任务 个人理解)