js中宏任务与微任务

2023-11-08

js是一门单线程语言,在执行代码的过程中,程序也分同步任务与异步任务,而异步任务中分为宏任务微任务

分类:

  • 宏任务:ajaxsetTimeoutsetIntervalDOM监听、UI Rendering
  • 微任务:Promisethen回调、 Mutation Observer APIqueueMicrotask()

执行顺序:

因为在事件循环里面分为宏队列微队列。在每一次执行宏队列里面宏任务时,先去查看微队列里面的微任务有没有,如果有微任务,先执行微任务,然后再去执行宏任务。要保证宏任务执行前,微队列里面没有微任务!

展示图:

注意点:比如说在代码执行的时候,分为同步与异步(宏任务、微任务),同步会依次执行,异步任务则会看是什么类型的,比如先遇到第一个宏任务,那么把第一个宏任务放到宏队列第一个,微任务也是一样的操作,等同步的任务都执行完了,就开始去执行异步啦,

就按照上面说的顺序一样执行,打比方:有XX个宏任务,XX个微任务,这俩个分别怎么顺序执行的呢?【先来先排队,后来后排队】。先加入宏或者先加入微队列里面的任务,XX任务到执行的时候,先排队的先执行,依次顺序!

必须保证:宏任务执行前,微队列里面没有微任务!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

js中宏任务与微任务 的相关文章

随机推荐

  • 安装ubuntu分区设置

    一般来说 在linux系统中都有最少两个挂载点 分别是 根目录 及 swap 交换分区 其中 是必须的 一般来说我们最少需要两个分区 需要一个SWAP分区 和一个 分区 但把一些常用 重要的挂载点分到其它分区 这样便于管理 一般一个 分区
  • 对faster rcnn的一些修改

    在network py中修改anchor scales 第262行 def create architecture self sess mode num classes tag None anchor scales 8 16 32 anch
  • Linux中FTP传输协议

    目录 一 ftp的简介 实验一 匿名传输 1 配置文件 etc vsftpd vsftpd conf 2 在 var ftp pub中新建文件并写数据 3 在cmd中连接虚拟机 4 向真机发送文件 5 向虚拟机发送文件 实验二 禁止任意用户
  • c语言简易密码本爆破

    代码如下 实现原理比较简单 通过读取txt文件密码本与内置好的密码口令进行对比 密码本可以在网页上找 也可以用这个密码字典下载 弱口令字典下载 密码字典 迷你下载站为大家分享这个弱口令字典文件 它列出了多款规则的密码 有需要的大神们可以参考
  • 485、CAN、单总线、SPI、I2C的概念,特点,协议,使用方法及通信方式,还有它们之间的区别

    一 概念 1 485 485 一般称作 RS485 EIA 485 是隶属于 OSI 模型物理层的电气特性规定为 2 线 半双工 多点通信的标准 它的电气特性和 RS 232 大不一样 用缆线两端的电压差值来表示传递信号 2 CAN CAN
  • C#中变量的类型

    文章目录 值类型 引用类型 值类型与引用类型的区别 枚举类型 变量的作用域 值类型 C 中值类型的变量主要包括整数类型 浮点类型 decimal和bool类型等 值类型的变量都在堆栈中进行分配 因此效率很高 所以使用值类型的主要目的是为了提
  • (IDEA)创建Java类时,自动生成作者、时间和版本号注释;以及方法注释时,自动生成参数和返回值注释

    可恢复 IDEA 创建Java类时 自动生成作者 时间和版本号注释 以及方法注释时 自动生成参数和返回值注释 1 作者 时间和版本号注释 2 方法注释 自动生成方法中参数和返回值 IDEA 创建Java类时 自动生成作者 时间和版本号注释
  • 【iVX】颠覆常规,首个图形通用无代码编程平台诞生

    个人主页 个人主页 新人博主 喜欢就关注一下呗 文章目录 关于传统 低代码平台 我的看法 低代码平台的 局限性 传统的 低代码平台 存在以下一些缺点 关于iVX 为什么选择iVX 1 可视化的操作自动生成 全栈代码 2 超强的代码能力 3
  • Linux I2C 驱动实验

    目录 Linux I2C 驱动框架简介 I2C 总线驱动 I2C 设备驱动 I2C 设备和驱动匹配过程 I MX6U 的I2C 适配器驱动分析 I2C 设备驱动编写流程 I2C 设备信息描述 I2C 设备数据收发处理流程 硬件原理图分析 实
  • 计算机操作系统知识架构整理

    计算机操作系统 操作系统引论 操作系统的目标与应用 操作系统的目标 操作系统的作用 推动操作系统发展的主要动力 操作系统的发展过程 无操作系统的计算机系统 单道批处理系统 多道批处理系统 分时系统 实时系统 微机操作系统的发展 操作系统的基
  • 【剑指offer】数据结构——队列 栈 堆

    目录 数据结构 树 剑指offer 09 用两个栈实现队列 剑指offer 30 包含min函数的栈 剑指offer 31 栈的压入 弹出序列 剑指offer 41 数据流中的中位数 剑指offer 59 2 队列的最大值 数据结构 树 剑
  • Ubuntu 20.04安装搜狗输入法无法输入中文

    根据搜狗输入法官网进行安装后 无法输入中文 这是由于缺少所需要的依赖 sudo apt install libqt5qml5 libqt5quick5 libqt5quickwidgets5 qml module qtquick2 sudo
  • 小白安装python+cuda+pytorh(gpu版本)

    首先说一下 安装前你需要自行安装anaconda和pycharm环境 推荐使用清华镜像安装anaconda https mirrors tuna tsinghua edu cn anaconda archive 第1步cuda下载 CUDA
  • node事件循环

    一 什么是事件循环 首先 node js的事件循环与JavaScript的略有不同 node中事件循环使node js可以通过将操作转移到系统内核中来执行非阻塞 I O操作 由于大多数现代内核都是多线程的 因此它们可以处理在后台执行的多个操
  • css3动画详解

    动画属性详解 1 transform 变形 动画的实际效果 a C3中支持操作 1 旋转 rotate 2 扭曲 skew 3 缩放 scale 4 移动 translate 5 矩阵变形 matrix b 使用介绍 rotate 旋转 1
  • 安装Msys2+pacman+mingw

    Msys2是在windows下提供的模拟GNU操作系统的环境 我觉得主要提供了一种模拟Linux操作的命令行环境 pacman是Msys2下的一个程序 我觉得类似CentOS下的yum ubuntu下的apt mingw按照我的理解 也是一
  • Ant Design Vue 之a-tab单元格编辑

    前言 最近遇到一个需求 要求表格中某一属性是可以单独改变的 看了 Ant Design Vue 的官方组件 发现不太灵活 所以自己动手写了一下 官方实现 先看一下官方demo演示效果 发现只能整行编辑 不能单独针对某个属性进行单独编辑 例如
  • 若依框架——前后端分离版

    目录 一 若依是什么 二 为什么使用若依 三 运行若依框架 四 若依的权限系统 1 菜单权限 1 创建菜单 2 创建角色分配权限 3 创建用户 2 按钮权限 3 接口权限 4 数据权限 四 其他系统管理 1 字典管理 1 添加字典类型 2
  • Proteus元器件介绍

    一直更新 各元器件使用说明 数码管 排阻 resistor network respack 数码管 这个需要主义的就是7SEG COM AN XXX 这里的COM AN是共阳极的意思 下面的COM CAT是共阴极 排阻 resistor n
  • js中宏任务与微任务

    js是一门单线程语言 在执行代码的过程中 程序也分同步任务与异步任务 而异步任务中分为宏任务与微任务 分类 宏任务 ajax setTimeout setInterval DOM监听 UI Rendering等 微任务 Promise的th