Асинхронность позволяет не занимать главный поток ожиданием сети, таймеров и событий, сохраняя возможность обслуживать интерфейс.
Почему во frontend возникает необходимость работать с асинхронным кодом и как работают event loop, microtasks и macrotasks?
Асинхронность позволяет не занимать главный поток ожиданием сети, таймеров и событий, сохраняя возможность обслуживать интерфейс.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Асинхронность позволяет не занимать главный поток ожиданием сети, таймеров и событий, сохраняя возможность обслуживать интерфейс.
JavaScript выполняет текущую работу последовательно. Promise-продолжения попадают в микрозадачи, а таймеры и пользовательские события обслуживаются как задачи среды; детали очередей различаются. В микрозадачах нельзя бесконечно добавлять новую работу без риска голодания остальных задач. Асинхронный API не ускоряет тяжёлое синхронное вычисление автоматически.