Что такое Promise в JavaScript на пальцах?
Никак не уложу в голове промисы. Что это, зачем, и при чём тут .then? Объясните попроще.
3 ответа
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). Главное — ты не стоишь столбом у стойки, а занимаешься своими делами.
Это объект, который представляет результат асинхронной операции, который придёт в будущем. .then — что делать при успехе, .catch — при ошибке.
Обещание результата в будущем.