假设你有一个像这样的 promise 链:
asyncFunction()
.then((value) => {
resolve(value)
})
.then((value) => {
resolve(value)
})
.then((value) => {
resolve(value)
})
.catch((error) => {
reject(error)
})
如果在这些函数调用之一期间引发错误,该错误是否会自动传播到链末尾的 catch
处?假设错误是在 asyncFunction() 期间一开始抛出的,那么它传播的确切机制是什么?错误是否传递给每个 then
的处理程序?或者每个 then 都会寻找第二个处理程序,但没有看到一个处理程序,因此将错误传递给下一个 then
?
最佳答案
是的,它会向下传播,直到遇到第一个catch
。应跳过所有 then
子句。
我注意到使用 resolve()
和 reject()
可以避免这种情况,在这种情况下不需要 Promise 构造函数模式。
关于javascript - 如果在 Promise 链中的某个点抛出错误,它是否会自动沿着链向下传播?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61545495/