00:00
哈喽,大家好,这一个小节呢,我们来看一下第四个问题。第四个问题呢,是关于promise对象当中的方法的。这个Z方法呢,它在执行完毕之后,返回的结果是一个promise对象。我们先看一看它的一个返回结果。还是一样,先创建一个promise的对象。好,我们直接用来改变状态。改状态之后呢,我们通过调用Z方法。啊,然后呢,去看一看。它的一个返回结果是怎样的?我们使用cons log打印一下value,下边这个位置呢?我们使用war来打印一下这个reason。当然了,在当前这个代码情况下,他一定会去执行第一个回调函数里边代码。那咱们这次的关注重点不在于这儿,我们的关注重点在哪儿呢?在这儿。
01:00
啊,执行。Z方法。拿结果,然后接下来我们来输出一下result。这个结果。打开一起来看一看。注意观察它的结果呢,是一个promise对象。啊,Z方法的返回结果是一个promise对象,好,那么下边的问题就来了,这个promise对象的状态由什么来决定?它的返回结果有什么样的特点?这是咱们这个,呃。第第四个问题,它的一个题目。那么呢,这个Z方法的返回结果呢?它是由指定的回调函数的执行结果来决定的。什么意思呢?就是我Z方法的返回结果是由我指定的回调函数它的执行结果来决定的。啊,比较成功,那你就由他来决定失败,你上面这个P如果失败就是由他执行结果决定。
02:04
那么这里面有这个三种情况。第一种情况就是抛出异常,抛出错误。那么如果说你的回调函数在执行的时候。抛出了错误。路一个,哎呀,出了问题。啊,你这抛了,如果你这抛了错误,抛了这个,呃,抛出这个异常,那么result这个对象它的状态会变为失败。我们可以来看一看刷新页面。然后点击看这里,它的状态是一个失败的状态。好,那么下面的话,我们来看一下第二种情况。第二种情况是,如果你的返回结果。啊,是一个非。类型的对象。就是你的返回结果不是一个promise对象,是其他的。
03:01
比如说字符串、数字不类型、unDeFined now等等等等。那么如果你看return一个123,或者说咱们来一个521。你如果返回结果呢,不是一个promise类型的对象,那么这个时候result这个结果,也就是then方法返回的这个结果。他的状态会变为一个成功。且你return这个值就是它成功的结果。好,我们可以来验证一下,刷新一面。然后点开状态是成功的,然后这个结果就是我们return的那个结果。好,这是第二种情况,下边呢,还有一个第三种情况,如果返回的这个结果是一个promise对象。啊,如果是一个promise对象的话,那你return的这个promise。他呢,就决定了Z方法返回这个结果的状态。
04:05
也就是说,如果你这儿成功了。比如说咱们这写个success啊,跟上面区分开。如果你的返回结果这块成功了,那好,Result结果也是成功的。咱们可以来看一看,刷新页面,然后点开。而且你这个promise对象成功的结果就是then方法返回的result,它这个promise对象成功的结果。反之也是如此,你看啊,当前是success。咱们接下来换成一个失败的reject。Error,我这返回的这个promise是失败的,那好,Z方法返回的result也是失败的。然后点开失败啊,他失败结果就是。我Z方法返回对象的失败结果。它是这样的一个规律。啊,这个呢也很重要,这是咱们在封装promise当中Z方法时啊,很重要的一个啊,理论一理论这样一个点。
05:07
我们在写代码的话,都要去实现这些功能的。好了,这一个小节,关于Z方法返回结果的一个介绍,我们就先到这儿。
我来说两句