Один поток, а всё успевает: как работает цикл событий в JavaScript

Promise, setTimeout и async/await часто работают совсем не в том порядке, которого ждёшь по коду, а тяжёлая синхронная функция способна заморозить весь интерфейс. Разберём модель цикла событий, которая объясняет эти эффекты и помогает понимать, где возникают блокировки, гонки запросов и лишние задержки.
Это отрывок статьи. Полную версию читайте на сайте источника по ссылке ниже.
Источник: Habr