> Как catch влияет на цепочку промисов в JavaScript (JavaScript)

Уровень: senior · Роль: frontend · Категория: Технические вопросы

Компании: Альфа-банк

Стек: JavaScript

> Пример ответа

Когда в цепочке промисов встречается .catch(), он перехватывает любую ошибку, возникшую в предыдущих .then() (или в самом промиссе) и позволяет продолжить выполнение цепочки. Если ошибка не обработана, цепочка прерывается до ближайшего .catch(). После обработки ошибки .catch() возвращает новый промис, который может быть успешно разрешён (если не выбросить исключение повторно), и цепочка продолжается с последующих .then().

Пример:

JAVASCRIPT
Promise.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() в цепочке.

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью