> Может ли Promise одновременно зарезолвиться и зареджектиться в JavaScript? (JavaScript)
Уровень: senior · Роль: frontend · Категория: Технические вопросы
Компании: VK
Стек: JavaScript
> Пример ответа
Нет, Promise не может одновременно зарезолвиться и зареджектиться. Promise может находиться только в одном из трёх состояний: pending (ожидание), fulfilled (выполнен успешно) или rejected (отклонён). После того как Promise перешёл в состояние fulfilled или rejected, он становится "замороженным" - его состояние не может измениться.
Даже если в коде вызвать и resolve, и reject, сработает только первый вызов. Например:
JAVASCRIPTconst promise = new Promise((resolve, reject) => {resolve('Успех');reject('Ошибка'); // этот вызов будет проигнорирован});promise.then(console.log, console.error); // Выведет: "Успех"
Аналогично, если первым вызвать reject, то resolve будет проигнорирован. Это гарантирует детерминированное поведение и предотвращает неоднозначные состояния.
> Похожие задачи по frontend
Что такое Resize Observer и для чего он нужен?
Как из объекта String получить примитив строки в JavaScript?
Как модифицировать класс в JavaScript для кастомного сравнения экземпляра с числом
Как написать метод объекта в JavaScript для получения значений по ключам в виде строки
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью