问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

async/await解析

发布网友 发布时间:2024-10-02 14:01

我来回答

1个回答

热心网友 时间:2024-10-08 05:33

在先前的讨论中,我们探讨了Promise的使用。在本章中,我们将深入探讨另一种处理异步代码的技巧。

2016年,ES7引入了async/await语法。那么,这一新特性的出现是为了解决什么问题呢?在async/await出现之前,我们有三种不同的异步代码编写方式。

不过,这三种方法在编写时都不够优雅。因此,ES7进行了优化,并推出了async/await。相较于Promise对象的then函数嵌套以及使用Generator的繁琐(需要借助co库才能自动执行,否则需要手动调用next()),Async/Await允许我们以同步代码的风格轻松编写异步代码,同时保持异步机制。这使得代码更加简洁,逻辑更加清晰。

async/await的特点包括:

1. async/await具有更高的语义性,"async"代表异步,用于声明一个异步的function;"await"可以视为"async wait"的缩写,用于等待异步方法执行完成;2. async/await是一种使用同步思维来解决异步问题的方案(等待结果出现后,代码才会继续执行);3. 可以通过多层async function的同步写法来替代传统的callback嵌套。

关于async function语法和await语法的具体使用方式,这里不做详细展开。

在使用async函数时,无论是Promise reject的数据还是逻辑错误,都会被默默地吞掉。因此,最好将await放入try{}catch{}中,以便catch能够捕捉到Promise对象rejected的数据或者抛出的异常。

如果不使用try/catch,也可以像以下示例那样处理错误(因为async函数执行后会返回一个promise)。

如果你不想让错误中断后面代码的执行,可以提前截留住错误,如下所示。

async/await的使用场景之一是,对于多个await命令的异步操作,如果它们之间不存在依赖关系(后面的await不依赖前一个await返回的结果),可以使用Promise.all()让它们同时触发。

例如,exc1的两个并列await命令的写法可能会比较耗时,因为只有test1执行完毕后,test2才会执行。你可以在浏览器的Console中尝试一下,会发现exc2使用Promise.all执行得更快一些。

关于async/await的兼容性问题,你可以在自己的项目中直接使用,或者通过babel来使用。只需将presets设置为stage-3即可。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
干货| 如何利用PPT绘制手绘图像(内含视频教学)。 小米Mix2s开发者选项的设置与应用指南(探索小米Mix2s开发者选项)_百度... 我今年41岁女,我想问一买哪种养老保险更合算,可以一次买吗?要多少... 我们家有营业执照。我现在41岁了。养老保险如何来买?一年,交多少钱? 搅拌桩的两喷两搅怎么理解 ...上关于一喷二搅、二喷二搅、二喷三搅、二喷四搅的具体做法 两搅两喷与四搅四喷的区别 三轴搅拌桩两搅四喷是什么意思 梦幻西游将军令怎么解绑 EXCEL表,求值? 快手收藏的视频在哪里看? C#异步方法async/await的三种返回类型 c#中的async和await的用法详解 八字哪个准 普京总统为什么这么牛 有哪些以工具是以动物为原型的 郎酒古蔺珍品的味道怎么样? 郎酒古蔺珍品有什么特色? 我们的哪些学习工具和劳动工具和动物有关 (关于动物仿生的 学习工具和... 郎酒古蔺珍品山水仰止口感怎么样?好不好喝 oppoR11S手机通话记录全部删除后,拨号界面按1怎么还会出现最近联系人... 红米Note如何通过按键进入recovery模式? 化工类工科考研什么学校专业课考的是高鸿宾版本的有机化学 花千骨许愿场是干啥的 花千骨手游装备怎么出 ...微信突然拆红包没有拆红包的那个声音了。怎么回事。能试过的都试过... 微信红包拆不了 比亚迪唐离合器是干的还是湿的? ...银行的银行承兑汇票,是否都可以在一家银行贴现? 赵寅成假如爱有天意扮演谁 怎样做猴头菇炖鸡窍门 中银小额贷款责任有限公司是真的吗 请问你有在中行小额贷款有限责任公司贷款吗?是真的还是骗子呀_百度知 ... 怎样给喜欢的女生过生日! 怎样给喜欢的女孩过生日 伟肯变频器一启动,就过压f2,t1 ? 怎样给喜欢的女生过生日 高人指点,怎样给喜欢的女生过生日(看清详细情况再回答哦)? 魔音和节拍的区别 梦到挖洋芋是什么预兆 新鲜松茸怎么吃比较好 梦见捡土豆是什么意思(土豆的寓意是什么意思) 淘宝展现指数是什么意思?什么影响它? 陶瓷和紫砂茶器哪个更好呢? 紫砂茶具好还是陶瓷好 2022年11月28号能从淄川经过吗 11月26号沂源到淄川通车吗 淄博山东万杰医学院 十一不放假??? 运筹学运输问求最大利润怎么求 山东淄博淄川刚才地震了吗。我刚才咋感觉到晃动了! 2010年11月27...