我如何确定三个 promise 中的哪一个导致了错误?
下面的代码是伪代码,但在我的实际代码中,我正在使用第三方库(Stripe 和 Firebase),因此我无法修改实际的 Promises 本身。
我想我可以检查 catch
中的 error
参数是否包含特定值(例如,在 Stripe 中有一个非常详细的错误对象),但肯定一定会有更好的办法。
return async.func.one.doIt()
.then(() => {
return async.func.two.doIt();
})
.then(() => {
return async.func.three.doIt();
})
.then(() => {
return { success: true };
})
.catch((error) => {
// How do I know which 'then' caused
// the catch to invoke?
});
最佳答案
您可以在每个“.then”方法之间放置“.catch”以捕获错误。它应该捕获之前任何 promise 抛出的最接近的错误,直到下一个“.catch”方法。
关于javascript - 如何确定哪个 promise 抛出错误(在 promise 链中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53085611/