> Что происходит при проверке статуса 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() не выполнится синхронно - он будет поставлен в очередь микрозадач. Пример:

JAVASCRIPT
const promise = Promise.resolve('готово');
console.log(promise); // Promise { 'готово' } - статус fulfilled
promise.then(console.log); // выведет 'готово' после синхронного кода
console.log('синхронно'); // выведется первым

Таким образом, проверка статуса через console.log(promise) покажет текущее состояние, но для обработки результата всегда нужно использовать асинхронные методы, так как Promise гарантирует асинхронность вызова обработчиков.

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

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