宏任务、微任务 个人理解

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

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

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

await promise 属于微任务

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

下面举个例子:

1

运行结果


结果
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容