js宏任务微任务输出解析

第一种情况

      setTimeout(function () {console.log('setTimeout 1') //11 宏任务new Promise(function (resolve) {console.log('promise 1') //12 同步函数resolve()}).then(function () {console.log('promise then') //13 微任务})})async function async1() {console.log('async1 start') //2 函数调用await async2()console.log('async1 end') //7 等待async2执行完成、宏任务里的所有同步函数完成和正常输出完成后,再次获得执行机会await async3()}async function async2() {console.log('async2') //3 函数调用}async function async3() {console.log('async3') //8 函数调用}console.log('eventLoop')  //1  宏任务async1()new Promise(function (resolve) {console.log('promise 2') //4 遇到async2异步函数,处于等待状态,执行promise里的同步函数resolve()}).then(function () {console.log('promise2 then') //9 执行这个微任务})new Promise(function (resolve) {console.log('promise 4') //5 执行promise里的同步函数resolve()}).then(function () {console.log('promise4 then') //10 按照顺序,执行这个微任务})console.log('eventLoop end') //6 宏任务里的正常输出

第二种情况

      const init = async () => {setTimeout(function () {console.log('setTimeout 1') //11 宏任务new Promise(function (resolve) {console.log('promise 1') //12 同步函数resolve()}).then(function () {console.log('promise then') //13 微任务})})async function async1() {console.log('async1 start') //2 函数调用await async2()console.log('async1 end') //4 等待async2执行完成await async3()}async function async2() {console.log('async2') //3 函数调用}async function async3() {console.log('async3') //5 函数调用}console.log('eventLoop') //1  宏任务await async1() // 异步函数async1全部执行完成后才会继续往下走new Promise(function (resolve) {console.log('promise 2') //6 执行promise里的同步函数resolve()}).then(function () {console.log('promise2 then') //9 执行这个微任务})new Promise(function (resolve) {console.log('promise 4') //7 执行promise里的同步函数resolve()}).then(function () {console.log('promise4 then') //10 按照顺序,执行这个微任务})console.log('eventLoop end') //8 宏任务里的正常输出}init()

人工智能学习网站

https://chat.xutongbao.top

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

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

相关文章

贪吃蛇大作战(C语言--实战项目)

朋友们!好久不见。经过一段时间的沉淀,我这篇文章来和大家分享贪吃蛇大作战这个游戏是怎么实现的。 (一).贪吃蛇背景了解及效果展示 首先相信贪吃蛇游戏绝对称的上是我们00后的童年,不仅是贪吃蛇还有俄罗斯⽅块&…

持续总结中!2024年面试必问 100 道 Java基础面试题(三十四)

上一篇地址:持续总结中!2024年面试必问 100 道 Java基础面试题(三十三)-CSDN博客 六十七、抽象类是否可以实现接口? 抽象类可以实现接口(Interface)。在Java中,抽象类实现接口是一…

【数据库表的约束】

文章目录 一、NULL vs (空字符串)二、not null 和default三、列描述字段comment四、zerofill五、primary key 主键总结 一、NULL vs ‘’(空字符串) NULL和空字符串’’ NULL代表什么都没有。 空字符串’代表有,但串…

纯干货分享|源代码泄露的有效方法

企业的源代码怎么加密? 源代码防泄密的重点和方法到底是怎样的? 源代码开发环境复杂,涉及的开发软件、文件类型庞杂多变,究竟有什么源代码加密软件能够适应众多开发软件而不影响原有的工作效率? 相信这是很多IT管理…

如何用TONGYILingma进行AI辅助编程?

通义灵码,是阿里云出品的一款基于通义大模型的智能编码辅助工具,提供行级/函数级实时续写、自然语言生成代码、单元测试生成、代码优化、注释生成、代码解释、研发智能问答、异常报错排查等能力,并针对阿里云的云服务使用场景调优&#xff0c…

面试笔记——工厂模式(简单工厂、工厂方法模式、抽象工厂模式)

场景需求:设计一个咖啡店点餐系统。 设计一个咖啡类(Coffee),并定义其两个子类(美式咖啡【AmericanCoffee】和拿铁咖啡【LatteCoffee】);再设计一个咖啡店类(CoffeeStore&#xff09…

软件设计师-应用技术-UML建模题3

基础知识及技巧: 1. 用例图: 1.1 考点: 题干里面有关项目的详细描述,完整用例图中的某些参与者和某些用来扣掉,根据题干内容和已有用例图补充。根据题干,分析用例图之间的关系。 1.2 基础知识&#xff…

Linux进程通信-信号

信号概念 信号是 Linux 进程间通信的最古老的方式之一,是事件发生时对进程的通知机制,有时也称之为软件中断,它是在软件层次上对中断机制的一种模拟,是一种异步通信的方式。信号 可以导致一个正在运行的进程被另一个正在运行的异…

通过 Java 操作 redis -- String 基本命令

关于 redis String 类型的相关命令推荐看 Redis - String 字符串 要想通过 Java 操作 redis,首先要连接上 redis 服务器,推荐看通过 Java 操作 redis -- 连接 redis 本博客只介绍了一小部分常用的命令,其他的命令根据上面推荐的博客也能很简单…

Day 63:单调栈 LeedCode 84.柱状图中最大的矩形

84. 柱状图中最大的矩形 给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。 求在该柱状图中,能够勾勒出来的矩形的最大面积。 示例 1: 输入:heights [2,1,5,6,2,3] 输出:10 解释&a…

熟悉这些道理可以让人更好地应对各种挑战和困难。

1. 为别人尽最大的力量,最后就是为自己尽最大的力量。——罗斯金 2. 世上有一条永恒不变的法则:当你不在乎,你就得到。当你变好,你才会遇到更好的。只有当你变强大,你才不害怕孤单。当你不害怕孤单,你才能够宁缺毋滥。…

论文精读-基于FPGA的卷积神经网络和视觉Transformer通用加速器

文章目录 论文精读-基于FPGA的卷积神经网络和视觉Transformer通用加速器概述研究背景卷积和注意力机制概述计算方式差异非线性与归一化操作差异 问题小结 加速器设计乘法单元探索非线性与归一化加速单元加速器架构 实验结果QA 论文精读-基于FPGA的卷积神经网络和视觉Transforme…

交易复盘-20240507

仅用于记录当天的市场情况,用于统计交易策略的适用情况,以便程序回测 短线核心:不参与任何级别的调整,采用龙空龙模式 一支股票 10%的时候可以操作, 90%的时间适合空仓等待 蔚蓝生物 (5)|[9:25]|[36187万]|4.86 百合花…

从0到1提审苹果商店(appstore)上线一款新APP

本篇主要复盘和介绍一款APP如何从0到1上线到苹果商店,将我自己项目遇到的坑跟大家分享,希望能为同样做开发或者运营的你提供经验,少走弯路。 如果你是24年1月1日之后开始首次提审APP,还需要先将自己的APP在工信部备案,苹果后台增加了工信部备案号的填写,备案方法和经验如…

SAP PP学习笔记12 - 评估MRP的运行结果

上一章讲了MRP的概念,参数,配置等内容。 SAP PP学习笔记11 - PP中的MRP相关概念,参数,配置-CSDN博客 本章来讲 MRP跑完之后呢,要怎么评估这个MRP的运行结果。 1,Stock/Requirements List and MRP List 在…

Python ansible 如何使用

Ansible是一个开源的配置管理、应用部署和任务执行系统,它使用SSH进行通信,无需在目标服务器上安装代理。Ansible通过YAML格式的剧本(playbooks)来描述配置和任务,这些剧本易于理解和编写。 以下是如何在Python项目中…

T型槽地轨承载力是如何连接整个制造过程的强力桥梁(北重公司设计)

T型槽地轨承载力的定义和计算 T型槽地轨是一种用于工业设备运输和装配的关键组件。它由世界上各行各业的生产商广泛采用,其有效的承载力使其成为连接整个制造过程的强力桥梁。本文将介绍T型槽地轨的承载力以及相关的设计要点和应用。 承载力的定义和计算 承载力是…

某制造公司屋顶分布式光伏发电案例分享--分布式光伏电力监控系统解决方案

安科瑞薛瑶瑶18701709087/17343930412 ★分布式光伏监控系统 分布式光伏监控电力系统遵循安全可靠、经济合理原则,满足电力系统自动化总体规划要求,且充分考虑光伏发电的因素,对分布式光伏发电、用电进行集中监控、统一调度、统一运维、满足…

安卓手机APP开发__命令行工具概述

安卓手机APP开发__命令行工具概述 目录 概述 设置环境变量 安卓SDK命令行工具 安卓SDK构建工具 安卓SDK的平台工具 安卓模拟器 概述 安卓SDK由APP开发需要用到的多个软件包组成.这里列出了可用的最重要的 命令行工具,以包为单位进行组织的. 使用安卓的工作台的SDK管…

vivado Zynq UltraScale+ MPSoC 比特流设置

Zynq UltraScale MPSoC 比特流设置 下表所示 Zynq UltraScale MPSoC 器件的器件配置设置可搭配 set_property <Setting> <Value> [current_design] Vivado 工具 Tcl 命令一起使用。