JavaScript 宏任务与微任务 - Web前端工程师面试题讲解

作者: 技术蛋老师分类: 计算机技术 发布时间: 2021-05-08 08:48:14 浏览:29395 次

JavaScript 宏任务与微任务 - Web前端工程师面试题讲解

炒饭放榨菜:
这边需要突出个重点 微任务队列只有一个 而宏任务队列可以有多个

【回复】回复 @小康首陀罗 : https://html.spec.whatwg.org/multipage/webappapis.html#task-queue
【回复】回复 @炒饭放榨菜 :👌 谢老哥
【回复】老哥 ,宏任务可以多个 这个有权威文档吗 没怎么听说过
JLchenc:
真好,今天下午研究了一下午的事件循环,刚进来,又看到了这个视频,看来有缘分啊[呲牙]

随笔上帝:
蛋老师,06:24里面说之道微任务队列被清空之后,浏览器可能会重新渲染,然后再执行下一个宏任务,那请问一下,在清空微任务的过程当中,某一个微任务里面又有宏任务和微任务怎么办??还是会继续另外开一个宏任务队列和微任务队列,分派任务嘛?[doge]

【回复】回复 @盐salt- : https://blog.csdn.net/weixin_30871701/article/details/97270307?spm=1001.2014.3001.5506
阿布丁喔:
老师,宏任务堆列中出堆列一个宏任务,其中如果包含微任务,那么下一个宏任务运行之前先运行这个微任务吗?

【回复】回复 @盐salt- :是这样。一次执行一个宏任务,宏任务中有同步和微任务。同步先执行,微任务后执行,等一个宏任务完全执行完了调下一个宏任务
精神病患者孤独:
爱了,最近在准备面试,看这些视频真的很有用!

黄米豆_:
老师 一轮loop最多执行多少个微任务,之前看别人面试有个题是 一直塞微任务 宏任务什么时候会执行

【回复】当微任务队列清空后才回去执行宏任务
【回复】这个是有上限的,具体要视各个浏览器的实现而定
爱分享的小铁王:
老师如果script中有两个settimeout 一个是2s 输出2 一个是1s 输出1 1s里面的有个promise.then 里面有个settimeout是0秒的 输出3

【回复】浏览器会为,定时器专门开一个定时模块。 当 定时器 计时结束后,才会把这个定时器的回调函数放入宏任务队列中。 promise实例里的当做同步代码执行,.then里的才是微任务。 嵌套情况,一层一层往下看就好了。
【回复】回复 @刂C刂C刂 : 定时器正在计时的时候,程序来个alert,这个计时会暂停还是继续计时并最终放到宏任务队列中呢?

知识分享官 setTimeout js promise 回调 micro macro event loop 事件循环 task

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!