> Что такое 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 вызван синхронно (через микротаски).
Пример:
JAVASCRIPTconst 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) оно не может быть изменено.
> Похожие задачи по frontend
Использовали ли кастомные парсеры для преобразования JSON в объекты на уровне бизнес-логики
Как работает прототипное наследование в JavaScript?
Что происходит при сложении двух пустых массивов в JavaScript
Из каких этапов состоит событийный цикл JavaScript
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью