如果在承诺链中的某一点发生了错误,它是否会自动向下传播?

问题描述 投票:0回答:1

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

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

如果在其中一个函数调用过程中产生了一个错误 那这个错误是否会自动向下传播到 catch 在链的末端?说错误是在开始时抛出的,在 asyncFunction(),它是如何传播的具体机制是什么?错误是否会传递给每个 then? 还是每一个都在寻找第二个处理程序,而不是看到一个,所以将错误传递给下一个。then?

javascript asynchronous promise es6-promise asynchronous-javascript
1个回答
1
投票

是的,它将被向下传播,直到它击中第一个 catch. 所有 then 应跳过从句。

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

© www.soinside.com 2019 - 2024. All rights reserved.