关于async await 等任务队列插话

  • 先上代码吧
    • 升下级吧

先上代码吧


大佬们不妨先猜一下执行顺序:
根据从上而下执行顺序
第一步:执行test( ) 调用test
打印出 ‘test start…’
然后继续往下执行 调用testSometing
打印出 ‘执行testSometing’
await 跳出当前堆栈
继续往下走吧。。。
执行promise 打印出’promise start…’
promise.then属于微任务 咱先放起来
然后再往下执行 ‘test end…’
好了 第一次调用堆栈执行玩咯
第二步:根据顺序该咱刚刚 的 await咯
然后打印出v1 testSometing’;
然后往下走 调用testAaync
打印出 ‘执行testAsync’
await 跳出当前堆栈(等会儿记得回来哦)
然后执行刚才那个微任务(快点啊,怎么还不来?)
打印出 ‘promise’;
好了 第二波儿执行堆栈完事儿了 (这就完事儿了??)
第三步 别忘了还有await小妹妹等着呐
继续走吧,总不能丢下人家不管吧 打印出V2 ’hello async‘;
然后再执行最后的 打印 ’testSometing hello async‘;(哎哟,累了)

升下级吧


怎么了??换了个小姐姐就慌了??尽管人家比上一个性感,额么么,扯远了

  1. 第一步 傻了??从上往下走呗,打印出 ‘script start’;
    遇到setTimeout了 这是宏任务 先放起来 这丈母娘不好对付呀 先绕开她
    执行async1 打印 ’async1 start‘还有’await 之前’;
    继续往下啊
    执行 async2 打印‘async2’ ,别走啊哥哥,Promise同步代码啊
    打印出’2222222’
    奶奶的,又await 跳出来 当前在async1函数小姐姐家里
    async1前面也有await 再跳出来(让我多待一会儿不行?吃醋了?)
    继续往下走 执行Promise 打印‘promise1;遇到.then 微任务 放起来
    打印’script end‘
    第一次完事儿了(3秒真男人)
  2. 第二步 根据从上而下 咱刚刚的await 继续走 嗯??啊 这
    返回了Promise对象啊 await相当于执行.then啊 .then属于啥来着? 微任务啊 放起来
    然后执行下一个微任务 打印出’promise2’
    执行完了
  3. 第三步再执行刚才的微任务
    打印出str ‘4444’;
    继续往下走 ’async1 end‘
    awiat下面的代码一般都是等着await后面执行完毕后再执行滴
    好了 万事俱备 只欠东风
    async1执行完了
    继续往下走 打印’promise3’
    .then 微任务 先放起来 执行后面的
  4. 第四步后面同步代码没有了哇 再执行微任务
    打印‘promise4’(对不起啊,我来晚了)
  5. 第五步同步代码跟微任务都执行完了 剩宏任务了
    setTimeout丈母娘 ,我带着诚意来了(开着大奔,好多money,还有给丈母娘准备的礼物,当然岳父大人也有)
    打印’setTimeou‘ (吖,行吧行吧,看你这么有诚意,我就把我女儿许给你了,待她好点儿啊)

关于async await 等任务队列插话相关推荐

  1. setTimeout、setInterval、promise、async/await的顺序详解(多种情况,非常详细~)

    本文很长,列举的情况很多. 在阅读本文之前,如果您有充足的时间,请新建一个项目与本文一同实践. 每段代码都有对应的解释,但是自己动手尝试印象才会更深哦~ setInterval:表示多久执行一次,需要 ...

  2. @async 默认线程池_.NET Web应用中为什么要使用async/await异步编程?

    布莱恩特:.NET Core开发精选文章目录,持续更新,欢迎投稿!​zhuanlan.zhihu.com 前言 1.什么是async/await? await和async是.NET Framework ...

  3. 8张图让你一步步看清 async/await 和 promise 的执行顺序

    2019独角兽企业重金招聘Python工程师标准>>> **摘要:**面试必问 原文:8张图帮你一步步看清 async/await 和 promise 的执行顺序 作者:ziwei3 ...

  4. JavaScript是如何工作的:事件循环和异步编程的崛起+ 5种使用 async/await 更好地编码方式!...

    此篇是 JavaScript是如何工作的第四篇,其它三篇可以看这里: JavaScript是如何工作的:引擎,运行时和调用堆栈的概述! JavaScript是如何工作的:深入V8引擎&编写优化 ...

  5. Task和async/await详解

    一.什么是异步 同步和异步主要用于修饰方法.当一个方法被调用时,调用者需要等待该方法执行完毕并返回才能继续执行,我们称这个方法是同步方法:当一个方法被调用时立即返回,并获取一个线程执行该方法内部的业务 ...

  6. ES2017 异步函数async/await

    ES2017标准已于2017年6月份正式定稿了,并广泛支持最新的特性:异步函数.如果你曾经被异步 JavaScript 的逻辑困扰,这么新函数正是为你设计的. 异步函数或多或少会让你编写一些顺序的 J ...

  7. Promise async/await的理解和用法

    Promise && async/await的理解和用法 为什么需要promise(承诺)这个东西 在之前我们处理异步函数都是用回调这个方法,回调嵌套的时候会发现 阅读性 和 调试 的 ...

  8. C#多线程和异步(二)——Task和async/await详解

    一.什么是异步 同步和异步主要用于修饰方法.当一个方法被调用时,调用者需要等待该方法执行完毕并返回才能继续执行,我们称这个方法是同步方法:当一个方法被调用时立即返回,并获取一个线程执行该方法内部的业务 ...

  9. 深入async/await知多少

    .net的async/await功能相信对很多人来说并不陌生了,有人感觉这功能很好,但也有人说这功能不好容易产生一些莫名其妙的死锁:有人说这些异步功能也有人说这是同步功能.其实在使用async/awa ...

最新文章

  1. Google 确认 Chrome 存在严重漏洞,向 20 亿用户发出警告:你们需立即更新浏览器...
  2. MFC——AfxParseURL用法
  3. 【Prince2科普】Prince2的七大原则(5)
  4. 完全备份、差异备份、增量备份的区别
  5. struts2的处理流程
  6. 怎么更好练习数位板_如何设计更好的仪表板
  7. [Network Architecture]DPN(Dual Path Network)算法详解(转)
  8. 【深度学习框架】Tensorflow Session.run()函数的进一步理解
  9. 【Python】绘制二维散点图
  10. Java的位运算符具体解释实例——与(amp;)、非(~)、或(|)、异或(^)
  11. python画柱状图-Python Excel 绘制柱形图
  12. CSS Reset的相关概念及实例
  13. OpenCASCADE Expression Interpreter by Flex Bison
  14. Spring application使用@ 使用的问题:'@' that cannot start any token. (Do not use @ for indentation)
  15. 产业的互联网化是什么时代_新时代:为什么互联网公司不应忽视65岁以上的一代...
  16. 控制计算机桌面图标,(1)在桌面上显示“计算机”“控制面板”图标,然后隐藏“控制面板”图标。...
  17. fx5u以太网通讯设置_图文简述三菱FX 5U以太网通讯的8大功能,你会用几种?
  18. 干货!蓝桥杯单片机组一经验分享
  19. STM32系列——手把手教你将SYN6288语音播报模块的标准库程序转为hal库使用
  20. 开发者论坛一周精粹(第七十一期) 国外企业备案解答 邮箱只能发不能收

热门文章

  1. restful 验证码平台请求验证
  2. JS 流行库(五):Swiper
  3. tinyproxy王卡免流配置_大王卡tiny免流模式
  4. 华硕冰刃4不显示,拆开检查2个故障,如不仔细分析上电又要烧板
  5. 什么是 Hash 算法?
  6. NX二次开发-UFUN读取属性的值UF_ATTR_read_value
  7. 【其他】手机bilibili的视频文件在哪个目录
  8. 2016天善智能交流会第22场: R语言为量化而生
  9. android 设置壁纸,Android 代码设置壁纸的方式,兼容各大ROM
  10. 西部学刊杂志西部学刊杂志社西部学刊编辑部2022年第22期目录