← Все вопросы

Что такое Promise в JavaScript на пальцах?

Задан 1 месяц назад1.4к просмотров3 ответа
20

Никак не уложу в голове промисы. Что это, зачем, и при чём тут .then? Объясните попроще.

3 ответа

37
✓ Принятый ответ — помог автору

Promise (обещание) — это объект-«расписка»: «результат будет позже». Он нужен для операций, которые не выполняются мгновенно — запрос к серверу, чтение файла, таймер.

У промиса три состояния: pending (ждём), fulfilled (получилось) и rejected (ошибка).

Работаешь с результатом через .then (успех) и .catch (ошибка):

fetch('/api/user')
  .then(response => response.json())
  .then(data => console.log(data))
  .catch(err => console.log('ошибка:', err));

Аналогия: ты заказал кофе и получил чек с номером. Кофе ещё нет (pending). Когда позовут — забираешь (.then). Если кончились зёрна — извинились и вернули деньги (.catch). Главное — ты не стоишь столбом у стойки, а занимаешься своими делами.

Артём Кондратович автор: лучшее объяснение, принято · 1 месяц назад
Сергей Малишевский аналогия с кофе топ 👍 · 1 месяц назад
14

Это объект, который представляет результат асинхронной операции, который придёт в будущем. .then — что делать при успехе, .catch — при ошибке.

7

Обещание результата в будущем.

Ваш ответ

Войдите, чтобы ответить на вопрос.
Поддержать проект