ja_JavaScript_事件循环
2022/2/25 22:23:52
本文主要是介绍ja_JavaScript_事件循环,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
事件循环
- js线程,也是主线程,主要执行js同步代码
- 然后遇到异步代码,比如说定时器,然后就会放到浏览器其他线程里面,开始计时
- 计时成功之后,这个js线程,并不会立即执行,
- 计时成功之后,其他线程,会把这个放到任务队列里面
- 而是js线程空闲的时候,就去任务队列里面看,有哪些需要执行的线程,然后取出来执行
宏任务队列和微任务队列
哪些是宏任务,哪些是微任务
执行规范
面试题技巧
- 划分出三列,主线程,微任务,宏任务
- 主线程,一定是先执行
- 然后执行微任务,最后宏任务
- 也就是说,在执行宏任务前,微任务队列一定被清空.
加入微任务队列的代码
- 我们都知道Promise的代码时加入微任务队列的.
- 途中11行到14行的代码,要等到第4行,resolve之后,才会执行
- 所以这部分的实际上,也是被加入到微任务队列里面了.
微任务的推迟
- return普通值,正常加入微任务
- return一个Promise,推迟一个微任务
- return一个Promise.resolve(),推迟两个微任务
面试题1
问题
解答
解答过程
事件循环面试题1.drawio
视频讲解
面试题2
问题
解答
图解
事件循环面试题2.drawio
面试题3
问题
解答
图解
事件循环面试题3.drawio
这篇关于ja_JavaScript_事件循环的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2025-01-04百万架构师第六课:设计模式:策略模式及模板模式
- 2025-01-04百万架构师第七课:设计模式:装饰器模式及观察者模式
- 2025-01-04适用于企业管理的协作工具API推荐
- 2025-01-04挑战16:被限流的CPU
- 2025-01-03企业在选择工具时,如何评估其背后的技术团队
- 2025-01-03Angular中打造动态多彩标签组件的方法
- 2025-01-03Flask过时了吗?FastAPI才是未来?
- 2025-01-0311个每位开发者都应知道的免费实用网站
- 2025-01-03从REST到GraphQL:为什么以及我是如何完成转型的
- 2025-01-03掌握RAG:从单次问答到连续对话