【JS】微任务和宏任务执行顺序

server/2024/12/22 23:26:32/

JavaScript中的宏任务(Macro Task)和微任务(Micro Task)执行顺序遵循一个规则:先执行当前宏任务的所有微任务,然后再执行下一个宏任务。

常见的宏任务包括:

  • 整体的脚本代码
  • setTimeout
  • setInterval
  • I/O操作
  • UI渲染
  • setImmediate(Node.js 环境)

常见的微任务包括:

  • Promise
  • Object.observe(已废弃)
  • MutationObserver(HTML5新增)
  • process.nextTick(Node.js 环境)

示例代码:

javascript">console.log('script start');setTimeout(function() {console.log('setTimeout');
}, 0);Promise.resolve().then(function() {console.log('promise1');
}).then(function() {console.log('promise2');
});console.log('script end');// 输出顺序为:
// script start
// script end
// promise1
// promise2
// setTimeout

在这个例子中,首先执行整体脚本的代码(宏任务),然后是Promise中的两个then方法注册的回调(微任务),最后是setTimeout(宏任务)。


http://www.ppmy.cn/server/129953.html

相关文章

MVVM 架构模式:解耦、可测试与高效

在现代的前端开发中,MVVM(Model-View-ViewModel)已成为非常流行的设计模式,尤其是在单页面应用(SPA)开发中。它通过解耦视图和业务逻辑,提升了代码的可维护性和扩展性。今天我们来深入探讨MVVM …

【Vue】vue-admin-template项目搭建

准备 node环境 node:v16.12.0npm:8.1.0 vue-element-admin下载 官网:https://panjiachen.github.io/vue-element-admin-site/guide/ 我这边下载的是4.4.0版本的,使用其他版本可能会因为所需要的node和npm版本过低或过高导致异常…

oracle数据库使用plsql如何查看sql的执行计划

方法 1:新建,SQL窗口,选中要解析的语句,F5快捷键或者工具下的解析计划 方法 2:新建,解析计划窗口,输入要解析的语句,点击执行按钮(F8)

操作系统 | 学习笔记 | 王道 | 4.2 目录

4.2 目录 4.2.1 目录的基本概念 文件目录指FCB的有序集合,一个FCB就是一个文件的目录项。与文件管理系统和文件集合相关联的是文件目录,它包含有关文件的属性、位置和所有权等。 目录管理的基本要求: 从用户的角度看,目录在用户…

EcoVadis认证内容有哪些?EcoVadis认证申请流程?

EcoVadis认证是一个国际性的可持续发展评估平台,旨在帮助全球企业和供应链评鉴其在环境、社会和治理(ESG)方面的表现。该认证框架由法国的检验、认证和检测机构必维集团(Bureau Veritas)创建,得到了众多跨国…

FFMpeg源码分析,关键结构体分析(一)

http://lazybing.github.io/blog/categories/ffmpegyuan-ma-fen-xi/ 一、下载FFmpeg的编译源码 进入网站:http://ffmpeg.org/download.html二、编译源码 执行下述命令: ./configure --prefix/usr/local/ffmpeg --enable-debug3 --enable-ffplay sudo …

哪种隔音方式最好?小户型如何隔音?

雅静说常见的隔音材料      ①隔音棉      隔音棉是一种半开孔结构的海绵,它的隔音原理是:内部细小开孔相互连接吸收外界传过来的声波,从而达到降噪的目的。      ②隔音板      好的隔音板能够隔断超过30dB的声量&#xff0…

虾皮Shopee大数据面试题及参考答案

Cube 表性能优化,还有其他优化的方法吗? Cube 表性能优化可以从多个方面入手。 一方面,可以优化数据存储格式。选择合适的存储格式能够减少存储空间占用,提高数据读取速度。例如,Parquet 格式是一种高效的列式存储格式,它可以按列进行数据压缩,大大减少磁盘 I/O 和内存占…