493просмотров
8.4%от подписчиков
8 марта 2026 г.
question📷 ФотоScore: 542
Что выведет этот код? console.log("A") setTimeout(() => console.log("B"), 0) Promise.resolve().then(() => console.log("C")) console.log("D") A
D
C
B Разбор по шагам. • Сначала выполняется синхронный код (Call Stack):
• console.log("A") → выводит A
• setTimeout(..., 0) → колбэк отправляется в macrotask queue
• Promise.resolve().then(...) → колбэк отправляется в microtask queue
• console.log("D") → выводит D После этого основной поток завершён. Затем Event Loop обрабатывает microtasks (они имеют более высокий приоритет): выполняется Promise → выводит C И только потом выполняются macrotasks: • setTimeout → выводит B Итоговый порядок выполнения: Sync → Microtasks (Promise) → Macrotasks (setTimeout) Если кратко: Promise всегда выполнится раньше setTimeout, даже если timeout = 0.