00:00
Hello,大家好,这一个小节呢,我们来介绍一个promise当中的方法,叫resolve。这个方法呢,它比较特殊,相较于Z和相较于catch来说,它不太一样。它呢,是属于promise这个函数对象的,它并不属于实例对象。那么这个方法有什么作用呢?它接收一个参数,然后返回一个成功或失败的promise对象。啊,它的作用其实就是为了快速得到一个promise对象,而且还能够封装一个值,将这个值呢转化为promise对象。这是它的一个作用。好了,接下来的话我来给大家演示一下这个方法的使用,首先我们打开编辑器。我们说明一个变量let PE等于promise.resolve你看它是这样用的,之前咱们是new promise返回对象,而现在是promise.resolve。
01:03
里边呢,接收一个参数,我们可以先传入一个数字。看一看它的一个结果。打开浏览器。打开控制台。你可以看一下,此时它的结果呢,是一个promise对象,而且状态呢为成功。这个结果啊,就是这个成功的值为我们传入的这个数字521。那这里的话就是我们如果传的是一个数字,它返回的结果是一个成功的promise,那我传递其他类型值,它的返回结果又是什么呢?我们来说一下它的规律。它的规律是这样子的。如果传入参数为非。Promise类型的对象。则返回的这个结果为成功的promise对象。也就是说,如果你传递什么数字啊。传递字符串,传递boy类型,什么unDeFined none等等等等这些还有呢,非promise类型的这个对象。
02:09
那它的返回结果都是一个成功的promise。那如果说你的参数。啊,如果传入参数为这个promise对象。则参数的结果决定了resolve。的结果。什么意思呢?比方说举个例子啊,Let等于一个promise.resolve如果你传入这个参数啊,它是一个promise对象。那你传出的这个promise对象,它的结果就决定了resolve返回的结果。他如果成功,则返回的结果也是成功的,那它成功的值就是返回的promise对象它成功的值。相反,也是如此。比方说我在这里写一个OK,那明显里边这个参数是一个成功的promise,那P2也是一个成功的promise,它成功的值为OKY乘P2,这个结果也是OK。
03:14
好点开咱们看一下。点开你看状态是成功值为OK,那如果说你这是失败呢,啊,我来一个reject error。再看结果。啊,你看我里边失败,外边呢也失败,我失败值为error,则返回的结果也为error。下面这里有一个报错,这个报错是怎么产生的呢?是为什么会出现它呢?这主要是因为我们当前有一个失败的promise。而且呢,还没有对应的回调来对这个结果去做处理,这种情况下吧,这种情况下,那么浏览器就会报一个错误,那么怎么来解决呢?啊,我们可以呢,用catch。去给它传入一个。
04:00
失败的回调。让他呢,对这个失败的结果做一个处理,那么这个报错就能够解决。好了,右键刷新一下,你可以看一下就没有问题了,这个不是什么大问题啊。好了,那这个小节关于resolve的一个方法介绍,我们就先到这儿。
我来说两句