В чем разница между Then и Catch

«В чем разница между Then и Catch» — вопрос из категории Асинхронность, который задают на 10% собеседований Frontend Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

then и catch — методы промисов для обработки результатов.

  • then — обрабатывает успешное выполнение (resolve) и может принимать два колбэка: для успеха и ошибки (но второй редко используют).
  • catch — ловит только ошибки (reject), аналогичен then(null, errorHandler).

Пример:

fetch('url')
  .then(response => response.json()) // Успех
  .catch(error => console.error(error)); // Ошибка

Нюансы:

  • catch перехватывает ошибки в цепочке выше.
  • Если в then второй колбэк (для ошибки), он сработает только на ошибку в предыдущем промиссе, но не в самом колбэке. catch ловит все.

Лучше использовать catch для единой обработки ошибок.