TGViewer
METANIT.COM METANIT.COM @devnull22 · 5.82K subscribers
Post #2468 1.7K
Как работает JavaScript Runtime: стек вызовов, Web API и цикл событий

Как однопоточный JavaScript обрабатывает асинхронные операции, не замораживая браузер.

→ Движок V8 анализирует код и выполняет синхронные задачи в стеке вызовов (LIFO — Last In, First Out). Это быстро, но может выполнять только одну задачу за раз.

→ Асинхронные операции (такие как setTimeout(), fetch, события DOM) немедленно передаются в Web API (предоставляются браузером или Node). Это предотвращает блокировку основного потока.

→ Когда асинхронная задача завершена, её колбэк помещается в очередь.

✓ Очередь микрозадач (.then(), await) имеет высокий приоритет.

✓ Очередь колбэков (setTimeout, операции ввода-вывода) имеет стандартный приоритет.

→ Цикл событий (Event Loop) выступает в роли неутомимого координатора. Он постоянно проверяет: пуст ли стек вызовов?

→ Если стек пуст, цикл событий помещает все ожидающие микрозадачи, а затем следующий элемент из очереди колбэков в стек вызовов для выполнения.
  • 🔥 10
  • 🤮 4
  • ❤ 3
  • 👏 1
More from @devnull22
  1. Mar 19, 2026Добавил в руководство по JavaScript главу про работу с датами и временем с помощью Tempora…
  2. Mar 19, 2026Роскомнадзор перестал полностью справляться с блокировками в интернете Роскомнадзор (РКН)…
  3. Mar 18, 2026Минцифры опубликовало законопроект о государственном регулировании ИИ. Закон должен начать…
  4. Mar 18, 2026Microsoft призвала разработчиков создавать ИИ-приложения в Electron на Windows 11 Microsof…
  5. Mar 18, 2026Oracle анонсировала проект Detroit, который будет развиваться в составе OpenJDK и нацелен…
  6. Mar 17, 2026Вышла новая версия платформы Java - JDK 26. JDK 26 — краткосрочная версия с поддержкой Pre…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →