宏任务与微任务

来源:6-4 this 有几种赋值情况

慕粉2331556623

2020-08-19


http://img.mukewang.com/szimg/5f3d1d6f087783f309121216.jpg

http://img.mukewang.com/szimg/5f3d1d8d0855d11909121216.jpg
老师,能解释一下为什么输出顺序会是这样的啦?

写回答

3回答

_zion_

2020-12-11


1 脚本1宏任务入栈
      同步输出start
      setTimeout计时结束添加回调到宏任务队列
      添加promise回调函数到微任务队列
      宏任务结束阶段, js run任务退出栈,栈为空,微任务入栈
          执行微任务打印promise1  
2 脚本2宏任务入栈
      同步输出end
      setTimeout计时结束添加回调到宏任务队列
      添加promise回调函数到微任务队列
      添加requestAnimationFrame回调函数到宏任务队列
      宏任务结束阶段, js run任务退出栈,栈为空,微任务入栈
          执行微任务打印promise2
3 requestAnimationFrame添加的宏任务入栈
            输出requestAnimationFrame
4 setTimeout添加的宏任务入栈
      输出setTimeout1
5 setTimeout添加的宏任务入栈
      输出setTimeout2


0
0

可乐比酒更醉人

2020-09-18

我个人理解  是首先执行一个script代码  先执行start 然后 promise1 settimeout()加入到事件队列 开始执行 第二个 script代码  首先执行同步任务 end   然后执行了 primise 2 然后你那个顺序  原因嘛  宏任务与微任务  先判断当然执行栈  有没有宏任务  执行结束后 判断有没有微任务 然后执行 渲染  然后轮训继续判断

0
0

双越

2020-08-19

具体哪一步开始没看懂的?可以说一说你对代码的理解,和疑惑的地方。

0
0

一天时间高效准备前端技术一面 匹配大厂面试要求

针对时下面试高频考点,帮助新人js面试快速通关

4694 学习 · 1681 问题

查看课程