老师 async、await、?是什么意思 不是很理解
来源:3-5 请求函数的封装
lcy_18
2022-02-15 12:51:36

1回答
同学你好,解答如下:
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

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

(2)分析截图中的代码,result?.errno === 0这句代码的意思就是先判断result对象是否存在,如果存在的话,再判断result下的errno属性值是否等于0。
如果result对象不存在,代码并不会报错,而是返回undefined,与0比较时不相等,不符合if条件,不执行if下的语句就可以了。
祝学习愉快!
相似问题