Этот вопрос проверяет понимание синтаксиса метода catch для обработки ошибок в цепочках промисов в JavaScript.
Метод catch является частью API промисов в JavaScript и предназначен для обработки ошибок, возникающих при выполнении асинхронных операций. Когда промис переходит в состояние rejected (отклонён), управление передаётся ближайшему обработчику catch в цепочке. Это позволяет централизованно обрабатывать ошибки, не загромождая код множеством проверок.
Метод catch вызывается на объекте промиса и принимает один аргумент — функцию обратного вызова, которая получает причину ошибки (обычно объект Error). Пример:
fetch('https://api.example.com/data')
.then(response => response.json())
.catch(error => console.error('Ошибка:', error));В этом примере, если запрос завершится неудачей или возникнет ошибка при парсинге JSON, управление перейдёт к catch, который выведет сообщение об ошибке.
catch перехватывает ошибки из всех предыдущих then и catch в цепочке.catch не возникнет новой ошибки, цепочка может продолжиться с помощью then после catch.catch возвращает новый промис, что позволяет строить цепочки обработки ошибок.Пример с восстановлением после ошибки:
getData()
.then(data => process(data))
.catch(error => {
console.warn('Ошибка, используем запасные данные');
return fallbackData;
})
.then(data => render(data));Здесь, если getData() завершится ошибкой, catch вернёт запасные данные, и цепочка продолжится с их обработкой.
Метод catch является ключевым инструментом для обработки ошибок в асинхронном коде на промисах. Его следует использовать для обеспечения надёжности приложений, особенно при работе с сетевыми запросами, файловыми операциями или любыми другими асинхронными действиями, которые могут завершиться неудачей.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию