Middle+
Bir promisenin reddedilen durumunu .then() ve .catch() kullanarak nasıl işleriz? Hangi .then()'de hata olduğunu nasıl anlar ve ayrı ayrı işleriz?
sobes.tech yapay zeka
AI'dan gelen yanıt
Для обработки отклонённого (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(), но не даст информации о конкретном месте возникновения ошибки.