Справочник JavaScript
Promise: результат, который появится позже
Promise представляет будущий результат операции. Он начинается в pending и один раз переходит либо в fulfilled со значением, либо в rejected с ошибкой.
Рабочий пример
const wait = (ms) => new Promise((resolve) => {
setTimeout(resolve, ms);
});
wait(500)
.then(() => "Готово")
.then(console.log)
.catch(console.error);Каждый then возвращает новый Promise, поэтому операции можно связывать. Ошибка или reject передаются к ближайшему catch, а finally выполняется независимо от результата.
Когда применять
На практике Promise возвращают fetch и многие браузерные API. Не оборачивай в новый Promise функцию, которая уже его возвращает.
Проверь пример самостоятельно: измени исходные данные, убери одну строку и сравни результат. Такой короткий эксперимент помогает увидеть роль каждого свойства или метода и не превращает обучение в механическое копирование.
Частые ошибки
- Не возвращать Promise из then
- Создавать new Promise без необходимости
- Проглатывать ошибку пустым catch
Задание
Напиши функцию задержки и последовательно выведи три сообщения с интервалом в полсекунды.
Проверка: результат должен работать с клавиатуры, не создавать ошибок в консоли и оставаться понятным без пояснений автора.