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