PassFront
  1. PassFront
  2. База знаний
  3. Асинхронность и Event Loop

Что такое промисы в 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 — Промисы

Другие вопросы раздела