Xin's blog Xin's blog
首页
  • 前端文章

    • HTML
    • CSS
    • JavaScript
    • Vue
    • 组件与插件
    • CSS扩展语言
  • 学习笔记

    • 《JavaScript教程》笔记
    • 《JavaScript高级程序设计》笔记
    • 《ES6 教程》笔记
    • 《Vue》笔记
    • 《TypeScript 从零实现 axios》
    • 《Git》学习笔记
    • TypeScript笔记
    • JS设计模式总结笔记
  • 前端框架面试题汇总
  • 基本面试题
  • 进阶面试题
  • 其它
  • 技术文档
  • GitHub技巧
  • Nodejs
  • 博客搭建
  • 前后端联调
  • mock.js
  • 奇技淫巧
  • 分类
  • 标签
  • 归档
关于
GitHub (opens new window)

Xin

英雄可不能临阵脱逃啊~
首页
  • 前端文章

    • HTML
    • CSS
    • JavaScript
    • Vue
    • 组件与插件
    • CSS扩展语言
  • 学习笔记

    • 《JavaScript教程》笔记
    • 《JavaScript高级程序设计》笔记
    • 《ES6 教程》笔记
    • 《Vue》笔记
    • 《TypeScript 从零实现 axios》
    • 《Git》学习笔记
    • TypeScript笔记
    • JS设计模式总结笔记
  • 前端框架面试题汇总
  • 基本面试题
  • 进阶面试题
  • 其它
  • 技术文档
  • GitHub技巧
  • Nodejs
  • 博客搭建
  • 前后端联调
  • mock.js
  • 奇技淫巧
  • 分类
  • 标签
  • 归档
关于
GitHub (opens new window)
  • HTML

  • CSS

  • JavaScript

    • 知识点

      • new命令原理
      • ES5面向对象
      • ES6面向对象
      • 多种数组去重性能对比
      • 比typeof运算符更准确的类型判断
      • 可选链操作符
      • 三点运算符
      • cookies,sessionStorage和localStorage的区别?
      • forEach()函数究竟会不会修改原数组?
      • 宏任务与微任务
      • Promise实现原理
      • this指向
      • 递归函数返回undefined
      • 使用JS的FileReader对象读取blob对象二进制数据
      • clipboard 剪切板属性
    • 方法

  • Vue

  • 组件与插件

  • css扩展语言

  • 学习笔记

  • 前端
  • JavaScript
  • 知识点
ctrlwin
2021-05-28

宏任务与微任务

# 宏任务与微任务

image

执行宏任务,如果有新的宏任务则将其放到后面执行。

执行完宏任务后,开始执行微任务,如果有新的微任务则在当前所有微任务执行完后执行,随后再执行新的宏任务。

看下面一个🌰:

setTimeout(_ => console.log(4))

new Promise(resolve => {
  resolve()
  console.log(1)
}).then(_ => {
  console.log(3)
})

console.log(2)
1
2
3
4
5
6
7
8
9
10

在上面代码中,setTimeout为宏任务放到后面执行,new Promise在实例化过程中执行的代码都是同步的,而then中注册的回调才是异步的。

在所有同步代码执行完后才会去检查是否有异步任务,并执行相应回调,而微任务又在宏任务之前执行。

所以上面代码输出:1 2 3 4

关于宏任务与微任务推荐看这篇文章微任务、宏任务与Event-Loop (opens new window)

在GitHub上编辑 (opens new window)
#js
上次更新: 2/23/2022, 5:36:03 PM

← forEach()函数究竟会不会修改原数组? Promise实现原理→

最近更新
01
createElement函数创建虚拟DOM
05-26
02
clipboard 剪切板属性
05-26
03
vue的权限管理
05-16
更多文章>
Theme by Vdoing | Copyright © 2021-2022 Xin | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
×