Что такое промисы в JS?
Асинхронность и Event Loop
Промисы (Promises) — это объекты, представляющие результат асинхронной операции, который станет известен в будущем: успех или ошибка.
Три состояния
- pending — в ожидании.
- fulfilled — успешно завершён (есть значение).
- rejected — завершён с ошибкой.
Переход происходит один раз и необратим.
Использование
const promise = new Promise((resolve, reject) => {
setTimeout(() => resolve('данные'), 1000);
});
promise
.then((value) => console.log(value))
.catch((error) => console.error(error))
.finally(() => console.log('готово'));then— обработчик успеха.catch— обработчик ошибки (ловит из всей цепочки).finally— выполняется в любом случае.
Что решают
- Плоские цепочки вместо callback hell.
- Единая обработка ошибок.
- Комбинаторы:
Promise.all/race/allSettled/any.
Детали
- Коллбэки
then— микрозадачи (раньшеsetTimeout). throwвthen=reject.- Основа
async/await.
Коротко для собеседования
Промис — объект результата асинхронной операции с состояниями pending → fulfilled/rejected (один раз, необратимо). Даёт цепочки then/catch/finally, единую обработку ошибок и комбинаторы. Коллбэки — микрозадачи. Основа async/await.
Подробнее: learn.javascript.ru — Промисы