这里把promise的写法改成async awit看不懂,

这里把promise的写法改成async awit看不懂,

这里把发送axios请求的写法改成async awit看不懂,还有result?.data?.errno是什么意思,为什么要加点

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
imooc_慕慕 2023-02-13 15:43:26

同学你好,分析如下:

1、首先要知道使用async/await让异步代码同步执行,await是阻塞当遇到await的时候要等await执行完。本质可以理解为是为了简化代码,方便代码阅读和理解。

awai后面的代码会按照同步代码自上而下执行,也就是说当async执行的时候遇到await要等异步的axiso请求完返回数据之后才会向下继续执行。

代码的理解和第一种是一样的只是写法上略微的不同,同学书写习惯了就好了。

同时可以回顾一下咱们课程中关于async  await课程,参考地址:https://class.imooc.com/lesson/2132#mid=50714

2、视频中?. 是ES2020(ES11)新特性,意思是尝试访问对象的属性之前检查对象是否存在,防止在对象不存在时访问属性导致代码报错。前面课程中没有讲解过。

举个例子:

obj ?. sex 可以简单的理解为它的作用与三目运算符类似,即: obj ?obj.sex : undefined,如果obj对象存在,那么就返回obj的sex属性值,否则的话返回undefined。

https://img1.sycdn.imooc.com//climg/63e9e674099b4f8d07430191.jpg

再来分析截图中的代码,result?.data?.errno === 0这句代码的意思就是先判断result对象是否存在,如果存在,再判断result对象下的data属性是否存在,如果存在,再判断result.data下的errno属性值是否等于0。

也可以结合参考官方网站进行理解。

祝学习愉快~

  • 提问者 慕函数0445997 #1

    那这样子直接写result.data.errno不就可以了吗,result对象肯定是存在的呀

    2023-02-14 08:11:57
  • imooc_慕慕 回复 提问者 慕函数0445997 #2

    同学你好,这只是一种语法,根据个人习惯使用即可,祝学习愉快~

    2023-02-14 09:36:18
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师