Логотип YeaHub

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

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

Тренажёр

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

Обучение

Навыки

Войти

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

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

© 2026 YeaHub

Документы

Медиа

Назад
Вопрос про JavaScript: event loop, promise

Как работает асинхронность в JS?

Проверяет понимание неблокирующего выполнения кода в JavaScript.

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

JavaScript выполняет код синхронно (по шагам), но может откладывать задачи с помощью:

  • Callback-функций (например, setTimeout).
  • Промисов (Promise) и async/await.
  • Event Loop, который обрабатывает асинхронные задачи после основного кода.

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

JavaScript однопоточный, но избегает блокировок с помощью асинхронности. Например:

console.log("Start");
setTimeout(() => console.log("Timeout"), 0);
console.log("End");
// Вывод: Start → End → Timeout

Здесь setTimeout откладывает выполнение, чтобы не мешать основному потоку.

Как это работает?

  1. Синхронный код выполняется сразу.

  2. Асинхронные задачи (запросы, таймеры) попадают в очередь (Callback Queue).

  3. Event Loop проверяет, когда основной код завершился, и затем выполняет задачи из очереди.

Промисы (Promise) и async/await упрощают работу с асинхронностью, делая код понятнее:

async function fetchData() {
	const response = await fetch("url"); // Ждем ответа без блокировки
	console.log(response);
}

Уровень

  • Рейтинг:

    5

  • Сложность:

    7

Навыки

  • JavaScript

    JavaScript

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

#event loop

#promise

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