Promise.prototype.catch
Обрабатывает ошибку промиса.
Доступно с: ES2015
Синтаксис
promise.catch(onRejected)Параметры
| Параметр | Тип | Описание |
|---|---|---|
| onRejected | Function | Функция, которая получает ошибку. |
Возвращаемое значение
PromiseНовый промис — после обработки ошибки цепочка продолжается.
Примеры
Перехват ошибки:
Promise.reject(new Error('Network error'))
.catch((error) => console.log('Caught:', error.message));Результат:
Caught: Network errorОдин catch на всю цепочку:
Promise.resolve('{bad json')
.then((text) => JSON.parse(text))
.then((data) => console.log('not printed', data))
.catch((error) => console.log(error.name));Результат:
SyntaxErrorПримечания
Ошибка в любом then() пропускает остальные then() и попадает в ближайший catch(). Промис с ошибкой без catch() даёт в консоли предупреждение Uncaught (in promise).
См. также
- Promise.prototype.then — Задаёт, что сделать с результатом промиса.
- Promise.prototype.finally — Выполняет действие после промиса — и при успехе, и при ошибке.
- try...catch — Перехватывает ошибки, чтобы программа не остановилась.
В учебнике
- Промисы — Промисы в JavaScript: состояния промиса, then, catch, finally, создание промиса через new Promise и цепочки.