最新要闻
- 快讯:苹果iPhone 14黄色款预售:全新配色不加价 5999元起
- 天天微速讯:租客辞职要搬走被房东介绍工作 当事人感动
- 即时焦点:一辆腾势敢占两个充电桩:真不怕挨揍?
- “常温超导”把A股都晃晕了!真要改变我们的生活?
- 《霍格沃茨之遗》渗人面部Bug:玩家看了起鸡皮疙瘩
- 全球短讯!美环保署署长:将在今年最终确定甲烷排放规则
- 21世纪20年代是几几年(21世纪20年代是几几年)
- 陕西招聘会现3万月薪岗位学生排长龙 招聘人员:半天收简历150份
- 当前动态:供不应求!真我GT Neo5 1TB版真香:二手用户也抢着要
- “山药成了精”?男子买到奇葩山药外形酷似人脚掌
- 美少女三消游戏 《Mirror 2: Project X》开发组宣布破产解散
- 酒店回应到211大学招服务员:符合流程 面向所有高校毕业生
- 快看点丨京东CEO徐雷:百亿补贴效果超过预期、要做天天低价
- 【新要闻】比亚迪加入降价大军!宋Pro DM-i限时优惠:88元折扣6888元
- 焦点简讯:耳机煲机一般要煲多久_耳机煲机方法是什么?买回来新耳机要怎样煲?耳机要煲多久?
- 全球速看:浙四医院官网招聘2021_浙四医院官网
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
实时:第127篇:异步函数(async和await)练习题(异步,消息队列)
好家伙,本篇为做题思考
书接上文
(资料图片)
题目如下:
1.请给出下列代码的输出结果,并配合"消息队列"写出相关解释
async function foo() { console.log(2); console.log(await Promise.resolve(8)); console.log(9);}async function bar() { console.log(4); console.log(await 6); console.log(7);}console.log(1);foo();console.log(3);bar();console.log(5);
好我们公布答案:
(1) 打印 1;
(2) 调用异步函数 foo();
(3)(在 foo()中)打印 2;
(4)(在 foo()中)await 关键字暂停执行,向消息队列中添加一个期约在落定之后执行的任务;
(5) 期约立即落定,把给 await 提供值的任务添加到消息队列;
(6) foo()退出;
(7) 打印 3;
(8) 调用异步函数 bar();
(9)(在 bar()中)打印 4;
(10)(在 bar()中)await 关键字暂停执行,为立即可用的值 6 向消息队列中添加一个任务;
(11) bar()退出;
(12) 打印 5;
(13) 顶级线程执行完毕;
(14) JavaScript 运行时从消息队列中取出解决 await 期约的处理程序,并将解决的值 8 提供给它;
(15) JavaScript 运行时向消息队列中添加一个恢复执行 foo()函数的任务;
(16) JavaScript 运行时从消息队列中取出恢复执行 bar()的任务及值 6;
(17)(在 bar()中)恢复执行,await 取得值 6;
(18)(在 bar()中)打印 6;
(19)(在 bar()中)打印 7;
(20) bar()返回;
(21) 异步任务完成,JavaScript 从消息队列中取出恢复执行 foo()的任务及值 8;
(22)(在 foo()中)打印 8;
(23)(在 foo()中)打印 9;
(24) foo()返回。
所以答案是
1
2
3
4
5
6
7
8
9
好了,结束了,没什么问题了
步骤也解释清楚了
但是我隐约感到了不对劲
怎么会是123456789呢?
foo()应该是先恢复的,但是这里明显bar()先恢复了
我们上机试一下
诶,结果不对
前面地12345都没有问题,6789的输出变成了8967
我们主要来看和6789有关的输出字段
我们再来仔细地看看前面地解释,并把关键解释划出来
(4)(在 foo()中)await 关键字暂停执行,向消息队列中添加一个期约在落定之后执行的任务;
(5) 期约立即落定,把给 await 提供值的任务添加到消息队列;
(6) foo()退出;
(10)(在 bar()中)await 关键字暂停执行,为立即可用的值 6 向消息队列中添加一个任务;
(11) bar()退出;
(13) 顶级线程执行完毕;
(14) JavaScript 运行时从消息队列中取出解决 await 期约的处理程序,并将解决的值 8 提供给它;
(15) JavaScript 运行时向消息队列中添加一个恢复执行 foo()函数的任务;
(16) JavaScript 运行时从消息队列中取出恢复执行 bar()的任务及值 6;
我们回顾一下消息队列
一个JavaScript 运行时包含了一个待处理消息的消息队列。. 每一个消息都关联着一个用以处理这个消息的回调函数。
再补充一个关于await的知识点
等到 await 右边的值可用了,JavaScript 运行时会向消息 队列中推送一个任务,这个任务会恢复异步函数的执行。
我们试着把这个消息队列画出来
(有点抽象,但应该能看懂)
这样,我们就会发现, 因为Promise.resolve(8)被多处理了一次,导致了foo()方法后恢复
所以bar()先恢复了
那么实际上机又是怎么回事呢?
(书里面有行小字被我忽略了,后面又找到了)
TC39 对 await 后面是期约的情况如何处理做过一次修改。修改后,本例中的 Promise.resolve(8)只会生成一个 异步任务。
因此在新版浏览器中,这个示例的输出结果为 123458967。实际开发中,对于并行的异步操作我们通常 更关注结果,而不依赖执行顺序。——译者注
实际上机的消息队列
原先的两步处理变成了一步
搞定了,原来如此
关键词:
-
焦点!【LeetCode回溯算法#05】分割回文串(复习双指针判断回文以及substr函数使用记录)
分割回文串力扣题目链接给你一个字符串s,请你将s分割成一些子串,使每个子串都是回文串。返回s所有可能...
来源: -
今日热议:【django-vue】celery延迟任务、定时任务 django中使用celery 秒杀功能 双写一致性 首页轮播图定时更新 课程前端页面
上节回顾 1redis是什么》非关系型数据库,数据存在内存中,速度快,5大数据类型,主要用来做缓存 2安...
来源: -
世界热头条丨关于JAVA泛型数组类型擦除引发的问题及解决方案
先看如下一个DEMO示例代码:(其中doBatchGet被子类重写了1次)publicabstractclassBaseDemoService<T>{publicString
来源: 实时:第127篇:异步函数(async和await)练习题(异步,消息队列)
焦点!【LeetCode回溯算法#05】分割回文串(复习双指针判断回文以及substr函数使用记录)
今日热议:【django-vue】celery延迟任务、定时任务 django中使用celery 秒杀功能 双写一致性 首页轮播图定时更新 课程前端页面
世界热头条丨关于JAVA泛型数组类型擦除引发的问题及解决方案
环球今日讯!Mint安装MySQL
快讯:苹果iPhone 14黄色款预售:全新配色不加价 5999元起
天天微速讯:租客辞职要搬走被房东介绍工作 当事人感动
即时焦点:一辆腾势敢占两个充电桩:真不怕挨揍?
“常温超导”把A股都晃晕了!真要改变我们的生活?
《霍格沃茨之遗》渗人面部Bug:玩家看了起鸡皮疙瘩
全球短讯!美环保署署长:将在今年最终确定甲烷排放规则
21世纪20年代是几几年(21世纪20年代是几几年)
爆肝两万字,详解fastdfs分布式文件系统
初识rollup 打包、配置vue脚手架
世界热议:62.类模板
当前热文:C语言——可变参函数
陕西招聘会现3万月薪岗位学生排长龙 招聘人员:半天收简历150份
当前动态:供不应求!真我GT Neo5 1TB版真香:二手用户也抢着要
“山药成了精”?男子买到奇葩山药外形酷似人脚掌
每日视点!快速读懂Redis分布式锁的实现和原理
美少女三消游戏 《Mirror 2: Project X》开发组宣布破产解散
酒店回应到211大学招服务员:符合流程 面向所有高校毕业生
快看点丨京东CEO徐雷:百亿补贴效果超过预期、要做天天低价
【新要闻】比亚迪加入降价大军!宋Pro DM-i限时优惠:88元折扣6888元
焦点简讯:耳机煲机一般要煲多久_耳机煲机方法是什么?买回来新耳机要怎样煲?耳机要煲多久?
世界热点评!前端如何相对优雅管理api
全球速看:浙四医院官网招聘2021_浙四医院官网
环球观点:京东2022年收入超1万亿:“百亿补贴”会一直有!
简约时尚 健身备一件:361°新款轻薄速干衣39元冲量
越来越卖不动了!最畅销十款数码相机一览:索尼成赢家 第一性价比绝
全球通讯!Intel的大小核CPU架构:最终还是把一些老游戏坑了
往返近1000元!景区回应坐滑竿上山按斤收费:网友力挺明码标价
天天实时:【翻译】发布 .NET 8 Preview 1
前沿资讯!海洋风筝爆火 一周暴涨498%超过秋裤!网友:春天的信号
天天消息!甜香丝滑 旺旺邦德低脂轻乳咖啡官方狂促:合2元一瓶
《银河护卫队3》导演回击网友言论:确定选角不因其是黑人
世界热议:东风系引发车市价格大战!纯电宝马i3终端大促销:最大降幅超10万
每日热点:日本原药温和驱蚊配方:超威电热蚊香液3瓶1器14.9元发车
快讯:uni-popup 遮不住头部标题的解决办法
环球焦点!网友晒空荡新房 各大品牌疯狂随份子 开局一套房其他全靠送
快播:女子在地铁上脱鞋抠脚死皮掉一地 杭州地铁回应:列车到站会打扫
世界速递!为拯救者Y9000P 2023量身打造:联想推出新140W氮化镓适配器
每日看点!富士康否认清退临时工拆除流水线:运转正常
全球即时:美国一特斯拉撞上消防车造成一死一伤 现场惨烈!调查结果让人心痛
Envisics获得5000万美元C轮融资
当前滚动:(数据库系统概论|王珊)第十一章并发控制-第二、三、四节:封锁、封锁协议活锁和死锁
每日焦点!「中华田园敏捷开发」,是老板无能还是程序员无力?
【世界聚看点】探究SMC局部代码加密技术以及在CTF中的运用
记录--Vue自定义指令实现加载中效果v-load(不使用Vue.extend)
【焦点热闻】十分钟读懂火山引擎 DataLeap 数据治理实践
老头环壶头哥:击败女武神超4千次 期待DLC到来
天天资讯:儿子沉迷手机爸爸帮请假“逼”他连玩17小时:效果很好
焦点消息!供应iPhone 15的OLED屏幕漏光?国产面板一哥京东方回应:不予评价
当前关注:纵享丝滑 回味愉悦:德芙巧克力37.5元/斤(官价5折)
每日速看!成龙进组20天把半年的封闭用完了!新电影《龙马精神》4月上映:有吴京参演
每日视点!通过案例讲解python循环语句
【全球独家】基于应用理解的协议栈优化
关注:串口登录提示"Login incorrect"
热推荐:节能降耗 | AIRIOT智慧电力综合管理解决方案
实时:C++笔记--函数、预处理
【天天播资讯】为啥人一上车就爱睡觉?原来是被“催眠”了
全球观察:95后大厂女生裸辞开麻将馆当保洁:很享受自由和成就感
全球今日报丨2030年前后我国将实施火星采样返回:难度很大
【全球播资讯】特斯拉中国2月销量出炉 比亚迪能打5个特斯拉
航班晚点 山航机长提速帮乘客5分钟极限转机:提前20分钟到达
速递!首钢股份:2月重点产品产量同比均提升 预计国内钢材价格短期震荡偏强
焦点播报:Python常见面试题012. 可迭代对象和迭代器有啥区别?
从5分钟到60秒,袋鼠云数栈在热重启技术上的提效探索之路
世界观天下!我的脑内恋碍选项第二季会出吗_我的脑内恋碍选项第二季
【天天报资讯】ChatGPT火出圈!人工智能工程师平均招聘月薪突破2.5万
环球热文:三星推出冰淇淋主题键鼠套装:薄荷配色如此清凉
集成ChatGPT威力显著:微软Bing日活跃首次破亿
每日快报!3月罕见!郑州今日冲上30°C高温:成北方首个30℃+省会级城市
世界球精选!RTX 50显卡有望使用 GDDR7显存验证方案来了:狂飙36Gbps
无界生态发布会即将举办 焕新后的星纪魅族将带来哪些惊喜?
java代码审计-XSS
全球今日讯!vue中将base64流数据转成pdf文件可打印
环球速讯:1 MySql基础介绍
世界观焦点:英媒:多特蒙德中场贝林厄姆将决定自己的未来
观察:今年五一档已定档10部新片 王一博《长空之王》超65万人想看
天天热讯:海上巨无霸 我国自主研制的全球最大集装箱船今天交付
全球讯息:日本H3火箭首秀失败初步调查结果公布:电源系统异常
重获新“声”!清华开发出可穿戴人工喉咙:还原准确率超90%
天天热点评!美国一邮轮300多人患病呕吐腹泻:疑似感染诺如病毒
React Hooks源码深度解析
当前热文:虹科分享 | B站崩了怎么办?Redis企业版数据库多云战略分析
每日速读!Math.atan2求角度解析
快速打包、发布和管理应用——AppUploader工具介绍
星纪魅族集团宣布成立 全面推行新战略,新理念
热资讯!说唱女歌手转行卖烧烤年入百万 直言:梦想和生活不矛盾
全球观察:索尼α7 IV发布2.00版本固件:增加Creators' App支持
全风化和强风化哪个硬?全风化和强风化的区别是什么?
牛转乾坤是什么意思?牛转乾坤放在家里哪个位置?
离不开你是哪部电视剧主题曲?离不开你的原唱是谁?
惊艳世俗的名字有哪些?惊艳世俗的小说句子有哪些?
卧铺有充电的地方吗?卧铺补票怎么补怎么收费?
每日关注!C++笔记--数组、函数、预处理
索爱mk16i支持通话录音吗?索爱mk16i拍照效果怎么样?
双胡须造型着实罕见!腾势N7申报:首款激光雷达比亚迪来了
网易3A级赛车手游《巅峰极速》今日首测 全球超百款跑车正版授权