Как определить, какое из трех обещаний вызвало ошибку?
Приведенный ниже код псевдо, но в моем собственном коде я работаю со сторонними библиотеками (Stripe и Firebase) и поэтому не могу изменить сами обещания.
Я подумал, что смогу проверить, содержит ли аргумент error
в catch
конкретное значение (например, в 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?
});