> Как catch влияет на цепочку промисов в JavaScript (JavaScript)
Уровень: senior · Роль: frontend · Категория: Технические вопросы
Компании: Альфа-банк
Стек: JavaScript
> Пример ответа
Когда в цепочке промисов встречается .catch(), он перехватывает любую ошибку, возникшую в предыдущих .then() (или в самом промиссе) и позволяет продолжить выполнение цепочки. Если ошибка не обработана, цепочка прерывается до ближайшего .catch(). После обработки ошибки .catch() возвращает новый промис, который может быть успешно разрешён (если не выбросить исключение повторно), и цепочка продолжается с последующих .then().
Пример:
JAVASCRIPTPromise.resolve(1).then(val => { throw new Error('Ошибка'); }).catch(err => { console.log(err.message); return 2; }).then(val => console.log(val)); // Выведет: "Ошибка", затем 2
Если .catch() расположен в конце цепочки, он обрабатывает все ошибки, но после него цепочка завершается. Если .catch() стоит посередине, он "восстанавливает" поток, позволяя выполнению идти дальше. Важно: если в .catch() выбросить новое исключение, оно будет передано следующему .catch() в цепочке.
> Похожие задачи по frontend
Зачем на обертке модального окна навешивать id и проверять таргет клика для закрытия модалки
Почему this равен undefined у стрелочной функции, созданной в области видимости const в JavaScript
Как отсутствие собственного this у стрелочной функции влияет на вызов методов в JavaScript?
Почему this динамический в JavaScript и когда он определяется
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью