温馨提示:文本由机器自动转译,部分词句存在误差,以视频为准
00:00
哈喽,大家好,这个小节我们来看一下关键问题当中的第二个。就是promise指定多个成功或者失败的回调函数,它都会调用吗?啊,那么这里指定多个回调函数,这个指定回调用谁呢?就是Z方法。所以说在这个题在这块的话,题目的意思是,如果我们使用Z方法为一个promise对象去指定多个回调,这些回调是不是都会执行?那么答案是,当这个promise对象状态在改变之后,他们都会调用。我来给大家演示一下。首先我们先在这儿呢,使用resolve,将这个对象的状态呢变成一个成功。下边呢,来指定回调。指定毁掉。那咱们是先来指定第一个。好,然后p.Z然后value。
01:01
啊,然后呢,咱们就指定一个成功的。然后现在的话,咱们使用console log来打印一个value。这是第一次指定,下边呢,我来再次来指定回调杠二。啊,然后下边我们写一个p.z value。啊,在这呢,我alert一下value。大家可以看一下,在这个时刻。啊,在这个情形下边,我是用promise对象呢,调用了两次令,为他去指定成功的回调,那么在这种情况下,只要你的对象的状态发生了改变,那么这个回调就会。就会去执行,你看上边你已经成功了,所以下边两个回调都会执行。好,刷新一面,哎,当然咱们打开的文件不对啊,重新打开。打开控制台。点开它刷新页面,你看在这个地方有弹框有OK,控制台输出这块也OK,就表明啊,这两个回调都执行了。
02:03
那么如果说我在这里不调用resolve。不调用resolve的话,它的状态呢,一直是一个pending,在这种情况下状态没有改变,这些回调你指定完之后他也不会执行。点开刷新,你可以看一下这两个回调都不执行。所以说如果为一个promise对象指定多个回调啊。当它的状态在改变了之后,对应的回调函数就都会去执行。好了,第二个问题,我们先到这儿。
我来说两句