0

假设你有一个这样的承诺链:

asyncFunction()
.then((value) => {
    resolve(value)
})
.then((value) => {
    resolve(value)
})
.then((value) => {
    resolve(value)
})
.catch((error) => {
    reject(error)
})

如果在其中一个函数调用期间抛出错误,该错误是否会自动传播到catch链的末端?假设错误是在开始时抛出的,在 期间asyncFunction(),它如何传播的确切机制是什么?错误是否传递给每个处理程序then?还是每个人都寻找第二个处理程序,没有看到一个,然后将错误传递给下一个then

4

1 回答 1

1

是的,它会向下传播,直到到达第一个catch. then应跳过所有子句。

我注意到使用resolve()reject()避免了这种情况,在这种情况下不需要 Promise 构造函数模式。

于 2020-05-01T15:35:19.010 回答