Логотип YeaHub

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

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

Тренажёр

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

Обучение

Навыки

Войти

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

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

© 2026 YeaHub

Документы

Медиа

Назад
Вопрос про JavaScript: асинхронность

Event Loop, что относится к микро и макро задачам?

Проверяет понимание асинхронного выполнения кода в JavaScript.

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

Event Loop управляет выполнением асинхронного кода.

  • Микрозадачи (Promise, queueMicrotask) выполняются сразу после текущего синхронного кода.

  • Макрозадачи (setTimeout, setInterval) выполняются после микрозадач и рендера страницы.

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

JavaScript однопоточен, но Event Loop позволяет обрабатывать асинхронные операции:

  1. Микрозадачи:

    • Выполняются перед макрозадачами.

    • Примеры:

      Promise.resolve().then(() => console.log("Микрозадача"));
      queueMicrotask(() => console.log("Ещё одна"));
  2. Макрозадачи:

    • Выполняются после микрозадач.

    • Примеры:

      setTimeout(() => console.log("Макрозадача"), 0);

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

console.log("Синхронный код");
Promise.resolve().then(() => console.log("Микрозадача"));
setTimeout(() => console.log("Макрозадача"), 0);
// Вывод:
// "Синхронный код" → "Микрозадача" → "Макрозадача"

Итог:

  • Микрозадачи — для срочных асинхронных операций (например, обновление состояния).

  • Макрозадачи — для менее приоритетных задач (анимации, логирование).

Уровень

  • Рейтинг:

    5

  • Сложность:

    5

Навыки

  • JavaScript

    JavaScript

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

#асинхронность

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