00:00
Hello,大家好,这个小节呢,咱们来介绍一下awa表达式,在学完上一节a think之后呢,同学可能会有这样这样一个想法,这个I think感觉没有什么方便的地方,诶怎么能够解决这个异步编程呢?你先别急,等我们把wa介绍完以后,它们两个一结合就会产生化学反应。好,我们先来看一下wait,那么wait呢,它这个关键字呢,必须要放在think函数里边。啊,然后呢,右边呢,可以放一个表达式,一般呢为promise对象。就是在wa后边,后边啊可以放一个promise对象,那么呢,它这个语句呢,有返回结果,它的返回结果呢,是后边这个promise对象成功的一个值。然后呢,他如果说后边这个promise要是失败了,那如果失败的话,就会抛出异常,咱们通过try catch来做一个补货处理。
01:04
好一起来看一下啊,演示一下,首先呢啊,咱们是呃wait啊,然后呢,要放在呃think啊think函数中。但是要注意啊,这是一个单向的依赖,就是awa必须要放在I think里边,但是I think里边可以没有awa。啊,这是一个单项词是吧,哎呀,我不能没有你对吧,但是呢,我没了你照样过是吧,大概大概就这样一个意思哈,这是语法层面的一个限制好了,然后呢,Asy c function来个main,然后在里边呢,我们写一下wait。那么在后边咱们说了,可以放置一个,一般是放置一个promise对象,所以咱们外层呢,创建一个promise对象。好,然后P等于一个new的promise,然后里边是这个函数,我直接呢调resolve函数了啊,然后来一个成功的值,成功的值。
02:05
OK,保存,接下来我把P呢放到后边。然后下边呢,是wait这个语句的返回结果。就是整个这个表达式啊,是有返回结果的,这个结果是什么?这个结果是promise对象它成功的值。啊,它成功的一个结果,好,咱们在这呢使用let,然后result来做一个接收,然后呢,查看一下这个结果啊来在这console.log打印一下result,保存下面咱们调用这个函数啊,调用函数may。保存。切过来看这。啊,大家看着啊,这是一个成功的一个值,大家要注意啊,如果说我这儿换了,换成这个,比方说用户数据啊,用户数据,那么这个时候它的结果就是用户数据千万不要被刚才我们重复的一个成功的值而去啊。
03:02
就受到一个影响,就这个promise对象,它有两个属性,一个属性呢来表示它的一个状态,一个属性呢来表示它状态对应的一个值,它可以是成功,也可以是失败,所以说它还有成功的成功和失败状态和成功和失败值。总共是有这么两个属性来保存它的状态和值。好,现在可以看一下,我通过调resolve函数把对象状态改为了成功,并且通过传参修改它的一个值,成功的值为用户数据。那么这个就是它成功的一个结果,而我们返回的结果就是promise对象成功的那个值,所以说这个result结果就是用户数据。好,那如果说我要是要失败呢,Reject啊,然后呢,失败了。失败的话,我们这就需要通过try catch来做一个补货了,TRY放到下边,然后来一个catch。
04:06
啊,然后我们在这呢,使用log的方式来打印一下这个E保存大家看一下,就如果说你这个promise对象失败了,那好它呢会由try catch做一个捕获,在这儿呢可以得到在catch语句里边可以得到你失败这个结果,然后我们可以在这做一些处理。啊,做一些处理好了,这是当前呢,咱们对a wait表达式做了一个介绍,好,那么这个节咱们先到这儿,下个小节咱们就把I think和wa结合起来来使用了。
我来说两句