Цикл событий: синхронный код и микрозадачи
Цикл событий координирует выполнение JavaScript и обработку отложенной работы в браузерной среде.
Назначение
Цикл событий координирует выполнение JavaScript и обработку отложенной работы в браузерной среде.
Как это работает
Синхронный фрагмент завершается до запуска ожидающих обработчиков. Реакции Promise обычно выполняются как микрозадачи, а таймер попадает в очередь задач; задержка таймера не является гарантией точного времени запуска.
Пример
console.log('A');
setTimeout(() => console.log('D'), 0);
Promise.resolve().then(() => console.log('C'));
console.log('B');
Что должно получиться
В обычном запуске отдельного скрипта метки следуют A, B, C, D. Нулевой таймер означает возможность выполнения позже, а не немедленное прерывание текущего кода.
Граница применения и частая ошибка
Не создавайте бесконечную цепочку микрозадач ради «быстрого» повторения. Она может задержать другие задачи и обновление интерфейса, даже если каждый шаг короткий.
Самостоятельная проверка
Предскажите порядок меток перед запуском примера. Затем добавьте длительный синхронный расчёт в отдельном тесте и объясните, почему таймер не прерывает его.