> Что такое Promise в JavaScript и как он работает? (JavaScript)

Уровень: junior · Роль: frontend · Категория: Технические вопросы

Компании: Cyber Interactive, Альфа-банк, Инрэко, ООО Премиум ИТ Солюшен, VK, Kodix, Aston, Домклик, IT-One, EPAM, GoInvest, Exness, EdenAI, Evercode, Яндекс

Стек: JavaScript

> Пример ответа

Promise - это объект, представляющий результат асинхронной операции, который может быть в одном из трёх состояний: pending (ожидание), fulfilled (выполнено успешно) или rejected (отклонено с ошибкой). Он позволяет обрабатывать асинхронный код более читаемо, избегая "callback hell".

Как работает:
При создании Promise принимает функцию-исполнитель (executor) с двумя параметрами: resolve и reject. Вызов resolve(value) переводит Promise в состояние fulfilled, а reject(error) - в rejected. После этого срабатывают методы .then(), .catch() или .finally(). Promise гарантирует, что коллбэки выполнятся асинхронно, даже если resolve вызван синхронно (через микротаски).

Пример:

JAVASCRIPT
const fetchData = new Promise((resolve, reject) => {
setTimeout(() => {
const success = true;
if (success) resolve('Данные получены');
else reject('Ошибка загрузки');
}, 1000);
});
fetchData
.then(data => console.log(data)) // "Данные получены"
.catch(err => console.error(err));

Ключевые особенности:

  • Цепочка .then() позволяет последовательно обрабатывать результаты.
  • Ошибки пробрасываются до ближайшего .catch().
  • Promise.all() и Promise.race() управляют несколькими промисами.
  • После изменения состояния (fulfilled/rejected) оно не может быть изменено.

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью