Назад к вопросам
Лига Цифровой Экономики
Middle
4
В чём разница между обработкой reject во втором аргументе .then() и в отдельном .catch()? Зачем использовать .catch(), если можно обработать reject прямо в .then()?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
Разница между обработкой reject во втором аргументе .then() и в отдельном .catch() заключается в поведении цепочки промисов и удобстве обработки ошибок.
- Обработка reject во втором аргументе
.then(onFulfilled, onRejected)ловит ошибку только для этого конкретного промиса. .catch(onRejected)ловит все ошибки, которые произошли в предыдущих промисах цепочки, то есть это более универсальный и удобный способ централизованной обработки ошибок.
Использование .catch() позволяет писать код, где все ошибки обрабатываются в одном месте, что улучшает читаемость и поддержку кода.
Пример:
fetch(url)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Ошибка:', error));
Если использовать второй аргумент .then(), то ошибки, возникшие в последующих .then(), не будут пойманы, что может привести к необработанным исключениям.