Справочник по JS

Синхронный и асинхронный код

Синхронный код — выполняется последовательно, строчка за строчкой.
Если одна операция выполняется долго, весь поток ждёт её завершения.
Такую операцию можно назвать блокирующей.

Асинхронный код — позволяет выполнять часть работы “в фоне”: длительная операция передаётся окружению (браузеру или Node), а JS продолжает выполнение.
Когда операция завершена, её результат попадает в очередь задач, и движок выполняет callback.

Асинхронные операции (таймеры, сетевые запросы) выполняет окружение, а не сам движок JS.
Но сам промис — часть JS-движка: его then попадает в microtask queue, а не в окружение.

Пример

console.log(1);
Promise.resolve().then(() => console.log(4)); // микрозадача
console.log(2);
console.log(3);

// Вывод: 1, 2, 3, 4
22-11-2025
Сергей Железников

Другие материалы по теме