关于async await 等任务队列插话
关于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‘;(哎哟,累了)
升下级吧
怎么了??换了个小姐姐就慌了??尽管人家比上一个性感,额么么,扯远了
- 第一步 傻了??从上往下走呗,打印出 ‘script start’;
遇到setTimeout了 这是宏任务 先放起来 这丈母娘不好对付呀 先绕开她
执行async1 打印 ’async1 start‘还有’await 之前’;
继续往下啊
执行 async2 打印‘async2’ ,别走啊哥哥,Promise同步代码啊
打印出’2222222’
奶奶的,又await 跳出来 当前在async1函数小姐姐家里
async1前面也有await 再跳出来(让我多待一会儿不行?吃醋了?)
继续往下走 执行Promise 打印‘promise1;遇到.then 微任务 放起来
打印’script end‘
第一次完事儿了(3秒真男人) - 第二步 根据从上而下 咱刚刚的await 继续走 嗯??啊 这
返回了Promise对象啊 await相当于执行.then啊 .then属于啥来着? 微任务啊 放起来
然后执行下一个微任务 打印出’promise2’
执行完了 - 第三步再执行刚才的微任务
打印出str ‘4444’;
继续往下走 ’async1 end‘
awiat下面的代码一般都是等着await后面执行完毕后再执行滴
好了 万事俱备 只欠东风
async1执行完了
继续往下走 打印’promise3’
.then 微任务 先放起来 执行后面的 - 第四步后面同步代码没有了哇 再执行微任务
打印‘promise4’(对不起啊,我来晚了) - 第五步同步代码跟微任务都执行完了 剩宏任务了
setTimeout丈母娘 ,我带着诚意来了(开着大奔,好多money,还有给丈母娘准备的礼物,当然岳父大人也有)
打印’setTimeou‘ (吖,行吧行吧,看你这么有诚意,我就把我女儿许给你了,待她好点儿啊)
关于async await 等任务队列插话相关推荐
- setTimeout、setInterval、promise、async/await的顺序详解(多种情况,非常详细~)
本文很长,列举的情况很多. 在阅读本文之前,如果您有充足的时间,请新建一个项目与本文一同实践. 每段代码都有对应的解释,但是自己动手尝试印象才会更深哦~ setInterval:表示多久执行一次,需要 ...
- @async 默认线程池_.NET Web应用中为什么要使用async/await异步编程?
布莱恩特:.NET Core开发精选文章目录,持续更新,欢迎投稿!zhuanlan.zhihu.com 前言 1.什么是async/await? await和async是.NET Framework ...
- 8张图让你一步步看清 async/await 和 promise 的执行顺序
2019独角兽企业重金招聘Python工程师标准>>> **摘要:**面试必问 原文:8张图帮你一步步看清 async/await 和 promise 的执行顺序 作者:ziwei3 ...
- JavaScript是如何工作的:事件循环和异步编程的崛起+ 5种使用 async/await 更好地编码方式!...
此篇是 JavaScript是如何工作的第四篇,其它三篇可以看这里: JavaScript是如何工作的:引擎,运行时和调用堆栈的概述! JavaScript是如何工作的:深入V8引擎&编写优化 ...
- Task和async/await详解
一.什么是异步 同步和异步主要用于修饰方法.当一个方法被调用时,调用者需要等待该方法执行完毕并返回才能继续执行,我们称这个方法是同步方法:当一个方法被调用时立即返回,并获取一个线程执行该方法内部的业务 ...
- ES2017 异步函数async/await
ES2017标准已于2017年6月份正式定稿了,并广泛支持最新的特性:异步函数.如果你曾经被异步 JavaScript 的逻辑困扰,这么新函数正是为你设计的. 异步函数或多或少会让你编写一些顺序的 J ...
- Promise async/await的理解和用法
Promise && async/await的理解和用法 为什么需要promise(承诺)这个东西 在之前我们处理异步函数都是用回调这个方法,回调嵌套的时候会发现 阅读性 和 调试 的 ...
- C#多线程和异步(二)——Task和async/await详解
一.什么是异步 同步和异步主要用于修饰方法.当一个方法被调用时,调用者需要等待该方法执行完毕并返回才能继续执行,我们称这个方法是同步方法:当一个方法被调用时立即返回,并获取一个线程执行该方法内部的业务 ...
- 深入async/await知多少
.net的async/await功能相信对很多人来说并不陌生了,有人感觉这功能很好,但也有人说这功能不好容易产生一些莫名其妙的死锁:有人说这些异步功能也有人说这是同步功能.其实在使用async/awa ...
最新文章
- Google 确认 Chrome 存在严重漏洞,向 20 亿用户发出警告:你们需立即更新浏览器...
- MFC——AfxParseURL用法
- 【Prince2科普】Prince2的七大原则(5)
- 完全备份、差异备份、增量备份的区别
- struts2的处理流程
- 怎么更好练习数位板_如何设计更好的仪表板
- [Network Architecture]DPN(Dual Path Network)算法详解(转)
- 【深度学习框架】Tensorflow Session.run()函数的进一步理解
- 【Python】绘制二维散点图
- Java的位运算符具体解释实例——与(amp;)、非(~)、或(|)、异或(^)
- python画柱状图-Python Excel 绘制柱形图
- CSS Reset的相关概念及实例
- OpenCASCADE Expression Interpreter by Flex Bison
- Spring application使用@ 使用的问题:'@' that cannot start any token. (Do not use @ for indentation)
- 产业的互联网化是什么时代_新时代:为什么互联网公司不应忽视65岁以上的一代...
- 控制计算机桌面图标,(1)在桌面上显示“计算机”“控制面板”图标,然后隐藏“控制面板”图标。...
- fx5u以太网通讯设置_图文简述三菱FX 5U以太网通讯的8大功能,你会用几种?
- 干货!蓝桥杯单片机组一经验分享
- STM32系列——手把手教你将SYN6288语音播报模块的标准库程序转为hal库使用
- 开发者论坛一周精粹(第七十一期) 国外企业备案解答 邮箱只能发不能收
热门文章
- restful 验证码平台请求验证
- JS 流行库(五):Swiper
- tinyproxy王卡免流配置_大王卡tiny免流模式
- 华硕冰刃4不显示,拆开检查2个故障,如不仔细分析上电又要烧板
- 什么是 Hash 算法?
- NX二次开发-UFUN读取属性的值UF_ATTR_read_value
- 【其他】手机bilibili的视频文件在哪个目录
- 2016天善智能交流会第22场: R语言为量化而生
- android 设置壁纸,Android 代码设置壁纸的方式,兼容各大ROM
- 西部学刊杂志西部学刊杂志社西部学刊编辑部2022年第22期目录