Что такое RunLoop?
Асинхронность и Event Loop
RunLoop (цикл выполнения) — это общий термин для механизма, который в цикле обрабатывает события и задачи; в JavaScript ему соответствует Event Loop.
Общая идея
RunLoop — бесконечный цикл, который ждёт события/задачи и обрабатывает их по мере поступления. Термин встречается в разных платформах (iOS RunLoop, GUI-фреймворки). В вебе аналог — Event Loop.
Event Loop в JavaScript
1. Выполнить синхронный код (call stack).
2. Опустошить очередь микрозадач (Promise).
3. Взять одну макрозадачу (setTimeout, событие).
4. Повторить.console.log('1');
setTimeout(() => console.log('2'), 0);
Promise.resolve().then(() => console.log('3'));
console.log('4');
// 1, 4, 3, 2Зачем нужен
RunLoop/Event Loop обеспечивает асинхронность в однопоточной среде: долгие операции выполняются вне основного потока, а их коллбэки цикл выполняет, когда стек свободен, не блокируя интерфейс.
Коротко для собеседования
RunLoop — цикл обработки событий и задач; в JavaScript это Event Loop. Он при пустом стеке выполняет все микрозадачи, затем одну макрозадачу, и так по кругу, обеспечивая асинхронность в однопоточной среде без блокировки UI.