Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

Документы

Медиа

Назад
Вопрос про JavaScript: promise, lifecycle, synchronous

Какие части Promise выполняются синхронно, а какие асинхронно?

Вопрос проверяет понимание жизненного цикла Promise и порядка выполнения кода в JavaScript.

Короткий ответ

Конструктор Promise выполняется синхронно сразу при создании. Вызовы then, catch и finally регистрируют колбэки синхронно. Но сами колбэки выполняются асинхронно. Они попадают в очередь microtasks. Это гарантирует предсказуемый порядок выполнения.

Длинный ответ

Promise сочетает в себе синхронное и асинхронное поведение, что часто вызывает путаницу.

Синхронные части Promise

  1. Вызов конструктора Promise
    Функция-исполнитель (executor) запускается сразу.

new Promise((resolve) => {
  console.log('sync')
  resolve(1)
})
  1. Регистрация обработчиков
    Вызовы then, catch, finally выполняются сразу и просто добавляют колбэки.

Асинхронные части Promise

  1. Выполнение обработчиков then и catch
    Даже если Promise уже resolved, колбэк выполнится асинхронно.

  2. Очередь microtasks
    Колбэки Promise всегда попадают в microtask queue.

Пример порядка выполнения

console.log('start')

Promise.resolve().then(() => {
  console.log('then')
})

console.log('end')

Результат:

  1. start

  2. end

  3. then

Почему это важно

  • влияет на порядок выполнения логики

  • помогает избегать race condition

  • важно при отладке асинхронного кода

Вывод

Promise создаётся и настраивается синхронно, но его обработчики всегда выполняются асинхронно через очередь microtasks.

Уровень

  • Рейтинг:

    5

  • Сложность:

    8

Навыки

  • JavaScript

    JavaScript

Ключевые слова

#promise

#lifecycle

#synchronous

Подпишись на React Developer в телеграм