Back to questions
Лига Цифровой Экономики
Middle+
8
Как обработать состояние rejected у промиса, используя .then() и .catch()? Как понять, в каком именно .then() произошла ошибка, и обработать её отдельно?
Companies where asked
Answer from AI
sobes.tech AI
Для обработки отклонённого (rejected) состояния промиса можно использовать как .then(), так и .catch().
.then(onFulfilled, onRejected)— второй аргумент обрабатывает ошибку..catch(onRejected)— обрабатывает ошибку, если она произошла в любом предыдущем.then().
Чтобы понять, в каком именно .then() произошла ошибка, можно разделить цепочку и добавить обработчики ошибок после каждого .then(). Например:
promise
.then(result => {
// обработка результата
return nextStep(result);
})
.catch(error => {
console.error('Ошибка в первом then:', error);
throw error; // проброс ошибки дальше
})
.then(nextResult => {
// следующий шаг
})
.catch(error => {
console.error('Ошибка во втором then:', error);
});
Такой подход позволяет локализовать обработку ошибок и понять, где именно произошла ошибка.
Если использовать только один .catch() в конце, то он поймает ошибку из любого .then(), но не даст информации о конкретном месте возникновения ошибки.