Promise实例.then()链式调用,中段Promise链,Promise错误穿透.catch()

 Promise实例.then()返回的是一个【新的Promise实例】,它的值和状态由什么决定?

1.简单表达:由then()所指定的回调函数执行的结果决定

2.详细表达:

(1)如果then所指定的回调返回的是非Promise值a:

    那么【新Promise实例】状态为:成功(fulfilled)成功的value为a

(2)如果then所指定的回调返回的是Promise值p:

    那么【新Promise实例】状态\值,都与p一致

    (2)如果then所指定的回调抛除异常:

    那么【新Promise实例】状态为rejected,reason为抛除的那个异常

    中段Promise链:

    (1)当使用promise的then链式调用时,在中间中断,不在调用后面的回调函数

    (2)办法:在失败的回调函数中返回一个pendding状态的Promise实例

可惜,幸福都类似,悲伤却又千万种

    Promise错误穿透:

    (1)当使用promise的then链式调用时,可以在最后用catch指定一个失败的回调

    (2)当前任何操作出错,都会传到左后失败的回调中处理

    备注:如果不存在then的链式调用,就不需要考虑then的错误穿透

Promise中 异步async(高冷女)和 等待 await(舔狗)_Allen 赵奇隆的博客-CSDN博客

你可能感兴趣的:(Promise,js,javascript,前端)