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的错误穿透