温馨提示:文本由机器自动转译,部分词句存在误差,以视频为准
00:00
哈喽,大家好,这一个小节我们来介绍一下,关键问题的最后一个就是中断promise链。什么是promise链呢?就是咱们像之前两个小节讲的in方法的练式调用点点in.in一直点in,这种的话就会形成promise链,那我们应该如何做才能够中断这个promise链呢?你比方说我这块呢,输出完一之后,我就不想再输出二和三了,当然咱们首先先可以看看当前代码的一个执行结果刷新。一二三都能够执行,那现在我只想让一输出二三,我就不想让他们去执行了,这个时候呢,你做任何的返回,比方说就是你返回一个false,咱们经翅会这样做,返回一个false,然后返回一个nu是吧,然后或者说抛出一个错误,这种方式在这儿都是不好使的,那么怎么样做才能够中断这个链条呢?啊,我们这里有且有且只有一种方式,那就是必须要返回一个pending状态的。
01:18
啊,只有返回一个pending状态的promise对象才能够中断链条,为什么呢?你想如果你返回的是一个其他值false,就以拿false来说,你false也不是,所以说这个Z方法呢,它会返回一个成功的promise对象。那下边的话,这块也是一样子,UnDeFined也是一样子,下边unDeFi他们都会执行,唯独这个pending状态的promise对象它不一样,为什么它不一样呢?因为它这里如果说返回的是一个pending,那么Z方法返回的结果也是一个pending状态的promise对象。
02:00
当它是一个pending状态的,这样的时候,后续的Z方法,它的回调就都不能够执行,为什么呢?因为状态没有改变,这些回调函数都不能够去执行。啊,在前面的那个问题当中,我们说了,这个回调函数它什么时候能执行,得在状态改完之后才能够执行,状态不改变一直是pending,那对不起,你就执行不了。好了,大家可以来看一看这个效果刷新页面。只有123就没有。好了,这就是中断普罗米斯店的唯一的方法,这个小节我们就先到这儿。
我来说两句