「1分钟——前端08」JS的宏任务和微任务
author:一佰互联 2019-03-27   click:189

简介:1.机制如下:注意一点:宏任务需要多次事件循环才能执行完,微任务是一次性执行完的;2.宏任务macrotask:(事件队列中的每一个事件都是一个macrotask)优先级:主代码块 setImmediate MessageChannel setTimeout ...

「1分钟——前端08」JS的宏任务和微任务

1.机制如下:

「1分钟——前端08」JS的宏任务和微任务

「1分钟——前端08」JS的宏任务和微任务

注意一点:宏任务需要多次事件循环才能执行完,微任务是一次性执行完的;
2.宏任务macrotask:(事件队列中的每一个事件都是一个macrotask)优先级:主代码块 > setImmediate > MessageChannel > setTimeout / setInterval 比如:setImmediate指定的回调函数,总是排在setTimeout前面
3.微任务包括:优先级:process.nextTick > Promise > MutationObserver
4.举个栗子:(1)下面这个代码输出结果是什么?(先不要看下面的答案,自己想一想)

「1分钟——前端08」JS的宏任务和微任务

(2)揭晓答案:主程序和和settimeout都是宏任务,两个promise是微任务第一个宏任务(主程序)执行完,执行全部的微任务(两个promise),再执行下一个宏任务(settimeout),所以结果为:

「1分钟——前端08」JS的宏任务和微任务

本文仅代表作者个人观点,不代表巅云官方发声,对观点有疑义请先联系作者本人进行修改,若内容非法请联系平台管理员,邮箱2522407257@qq.com。更多相关资讯,请到巅云www.yx10011.com学习互联网营销技术请到巅云建站www.yx10011.com。