JS事件循环机制(event loop)之宏任务、微任务

js代码在执行的时候,会先执行同步代码,遇到异步宏任务则将异步宏任务放入宏任务队列中,遇到异步微任务则将异步微任务放入微任务队列中,当所有同步代码执行完毕后,再将异步微任务从队列中调入主线程执行,微任务执行完毕后,再将异步宏任务从队列中调入主线程执行,一直循环至所有的任务执行完毕(完成一次事件循环EventLoop)。

宏任务:整体代码script、setTimeout、setInterval、setImmediate、i/o操作(输入输出,比如读取文件操作、网络请求)、ui render(dom渲染,即更改代码重新渲染dom的过程)、异步ajax等

微任务:Promise(then、catch、finally)、async/await、process.nextTick、Object.observe(⽤来实时监测js中对象的变化)、 MutationObserver(监听DOM树的变化)

总结一下:

  • 宏任务按顺序执行,且浏览器在每个宏任务之间渲染页面
  • 所有微任务也按顺序执行,且在以下场景会立即执行所有微任务

    • 每个回调之后且js执行栈中为空。
    • 每个宏任务结束后。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/839692.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2024年商业管理与文化传播国际学术会议(ICBMCC 2024)

2024年商业管理与文化传播国际学术会议(ICBMCC 2024) 2024 International Conference on Business Management and Cultural Communication 一、【会议简介】 2024年商业管理与文化传播国际学术会议(ICBMCC 2024)是一次汇集全球商业管理领域…

Vaex :突破pandas,快速分析100G大数据量

pandas处理大数据的限制 现在的数据科学比赛提供的数据量越来越大,动不动几十个G,甚至上百G,这就要考验机器性能和数据处理能力。 Python中的pandas是大家常用的数据处理工具,能应付较大数据集(千万行级别&#xff09…

深入理解Nginx配置文件:全面指南

Nginx 是一个高性能的 HTTP 服务器和反向代理服务器,也是一个电子邮件(IMAP/POP3)代理服务器。由于其高效性和灵活性,Nginx 被广泛应用于各种 web 服务中。本文将详细介绍 Nginx 配置文件的结构和主要配置项,帮助你深入…

HarmonyOS之ArkUI布局设计常见细节

这里写目录标题 1. Button设置带有渐变色的背景图片无效1.1 问题分析1.2 成功案例 2. 路由跳转失败2.1 问题分析 1. Button设置带有渐变色的背景图片无效 1.1 问题分析 说明:设置颜色渐变需先设置backgroundColor为透明色。 Button($r(app.string.login), { type…

Logrus IT的专家们已将游戏《菇勇者传说》翻译成俄语

《菇勇者传说》是一款引人入胜的放置类RPG游戏,邪恶的龙将所有人变成了蘑菇。为了恢复人类形态,玩家的角色需要从小蘑菇成长为强大的勇士。 游戏中有多个蘑菇职业,每个职业都有独特的技能。玩家可以根据自己的喜好提升角色的属性和改变外观&…

Effective C++条款05笔记

“了解 C 默默编写并调用了哪些函数” 如果你创建了一个空类 class A{ } 那么编译器会为你的空类生成:拷贝构造函数、重载运算符、析构函数、默认构造函数。这些都是public权限且是inline的。 class A{A(){}//默认构造函数A(const A &a){}//拷贝构造函数A&am…

0基础从前端到Web3 —— Mine Clearance Frontend(一)

初始化项目以及通过dapp-kit连接钱包的部分就不再赘述&#xff0c;具体可以点击查看&#xff0c;如果篇幅当中遇到了一些未添加的依赖项&#xff0c;直接通过pnpm add -D <name>一般都可以解决。 一&#xff1a;链上网络切换 这里提供一个最简单的切换方式&#xff0c;…

单例模式简要介绍

学习目标&#xff1a; 单例模式 学习内容&#xff1a; 单例模式&#xff08;Singleton Pattern&#xff09;是一种设计模式&#xff0c;其主要目的是确保一个类只有一个实例&#xff0c;并且提供一个全局的访问点。它常用于需要全局唯一对象的场景&#xff0c;例如日志记录器、…

Obsidian Git 多端同步

2023年6月&#xff0c;某云笔记限制了免费用户最多同时登录 2 台设备&#xff0c;想要增加设备数量需要付费开通会员。之后我一直想找一款合适的笔记本软件&#xff0c;年底尝试了Obsidian&#xff0c;断断续续摸索了好几天终于成功了。将那时的笔记拿来分享一下。 相关地址&am…

eventfd和timerfd学习笔记

一、eventfd 1.1简介&#xff1a; eventfd是进程间通信(IPC)的一种手段&#xff0c;主要用来做事件通知。IPC通常方式&#xff1a; 1&#xff09;unix socket 2&#xff09;pipe 3&#xff09;共享内存 前两种都是同步调用&#xff0c;但是传递大量数据时存在效率问题&am…

FPGA搭积木之按键消抖(改进版)

目录 1.前言 2.回顾之前的设计 3.基于读者思路的设计 4.ModelSim仿真 1.前言 昨天分享的关于FPGA对机械按键消抖的设计&#xff0c;有读者指出了其中的不足&#xff0c;并给出了他的思路。今天就读者的设计思路&#xff0c;来再做一个按键消抖模块。这个程序大概是大学的时…

亚马逊、eBay、沃尔玛、OZON、速卖通等平台自养号攻略,助力测评补单

当前&#xff0c;跨境电商面临着巨大的挑战&#xff0c;其运营环境日益变得错综复杂。然而&#xff0c;这种复杂性可以归结为两个核心元素&#xff1a;买与刷。商家们通过进行买卖交易或补单操作&#xff0c;旨在增加销售、提升产品排名&#xff0c;并进而增强产品的权重。 销…

docker-如何将容器外的脚本放入容器内,将容器内的脚本放入容器外

文章目录 前言docker-如何将容器外的脚本放入容器内&#xff0c;将容器内的脚本放入容器外、1. docker 如何将容器外的脚本放入容器内1.1. 验证 2. 将容器内的脚本放入容器外 前言 如果您觉得有用的话&#xff0c;记得给博主点个赞&#xff0c;评论&#xff0c;收藏一键三连啊&…

VMware Workstation 虚拟机安装 ubuntu 24.04 server 详细教程 服务器安装图形化界面

1 阿里云下载 ubuntu-releases安装包下载_开源镜像站-阿里云 2 打开vmware,新建虚拟机 3 选择下载的镜像,开始安装 3 光驱这里修改下 4 重新启动&#xff0c;安装图形化界面 #更新软件包列表 sudo apt-get update #安装Ubuntu图形桌面 sudo apt install ubuntu-desktop 5 安…

hudi相关疑问

标题 1、flink流式写入hudi表时&#xff0c;Changelog模式和Append模式区别Changelog 模式Append 模式配置示例配置 Append 模式配置 Changelog 模式 总结 2、flink流式写入hudi表时&#xff0c;设置了Changelog模式&#xff0c;还需要设置write.operation参数吗Changelog 模式…

Python集合与字典的概念与使用-课堂练习[python123题库]

集合与字典的概念与使用-课堂练习 一、单项选择题 1、 哪个选项是下面代码的输出结果&#xff1f;‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬…

【调试笔记-20240524-Linux-扩展 OpenWrt-23.05 发行版 EXT4 镜像文件大小】

调试笔记-系列文章目录 调试笔记-20240524-Linux-扩展 OpenWrt-23.05 发行版 EXT4 镜像文件大小 文章目录 调试笔记-系列文章目录调试笔记-20240524-Linux-扩展 OpenWrt-23.05 发行版 EXT4 镜像文件大小 前言一、调试环境操作系统&#xff1a;Ubuntu 22.04.4 LTS工作环境调试目…

在https的系统中挂载其他http系统的画面的解决方案

目录 1.问题及说明 2.解决方案及示例 3.总结 1.问题及说明 A系统使用了https&#xff0c;在A系统中挂载B系统的http的画面&#xff0c;会报错如下&#xff1a; Mixed Content: The page at https://beef.zz.com/front/#/biz/cultivationList/cultivationDetails/5dbf836751…

MySQL之架构设计与历史(五)

MySQL之架构设计与历史 MyISAM存储引擎 在MySQL5.1及之前的版本&#xff0c;MyISAM是默认的存储引擎。MyISAM是默认的存储引擎。MyISAM提供了大量的特性&#xff0c;包括全文索引、压缩、空间函数(GIS)等&#xff0c;但MyISAM不支持事务和行级锁&#xff0c;而且有一个毫无疑…

【SD-WAN】香港企业进入粤港澳大湾区所面临的机遇和挑战

粤港澳大湾区发展及规划是中国其中一个主点发展战略&#xff0c;具备完整的多元化产业结构&#xff0c;城市之间建立强大的经济互补性&#xff0c;是国际性湾区和世界级城市群。因此&#xff0c;大湾区近年吸引了不少香港的创新及科技企业前往发展投资及设立据点扩展业务。本文…