老师 async、await、?是什么意思 不是很理解

来源:3-5 请求函数的封装

lcy_18

2022-02-15 12:51:36

https://img.mukewang.com/climg/620b3106093d686208350372.jpg

写回答

1回答

好帮手慕星星

2022-02-15

同学你好,解答如下:

1、async和await是es6中的知识,基于promise实现的。在前面promise课程中是有扩展的,可以回顾下:

https://class.imooc.com/lesson/1639#mid=45809

post请求是异步的,但是await会等待请求执行完后才会执行下面的。

2、?. 意思是尝试访问对象的属性之前检查对象是否存在,防止在对象不存在时访问属性导致代码报错。可以结合如下解析理解:

(1)先了解下?.语法,例如:obj ?. age 可以简单的理解为它的作用与三目运算符类似,即: obj?obj.age : undefined,如果obj对象存在,那么就返回obj的age属性值,否则返回undefined

https://img.mukewang.com/climg/620b407309a33a6907730248.jpg

两者输出的结果一样,如下图所示:

https://img.mukewang.com/climg/620b408d09d243ff05860164.jpg

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

如果result对象不存在,代码并不会报错,而是返回undefined,与0比较时不相等,不符合if条件,不执行if下的语句就可以了。

祝学习愉快!

0

0 学习 · 15276 问题

查看课程