Сложное - простыми словами: EventLoop 🔄
Представь ресторан с одним официантом (JavaScript). Посетители делают заказы 📝 (например: клики, загрузка данных, таймеры).
Официант ставит заказ на стопку 📚 (call stack). Выполняет заказы сверху вниз. Простой заказ (2 + 2) ✅ - быстро выполняет.
Сложный заказ (приготовить блюдо - асинхронная операция)? Отправляет на кухню (Web APIs) и берёт следующий заказ.
Повара готовят. Готовое блюдо -> "подоконник выдачи" (callback queue / microtask queue).
Официант проверяет подоконник 👀. Есть блюдо? Берёт и относит посетителю (выполняет callback). Это Event Loop 🔄!
Важно ❗️: Официант не ходит на кухню. Только принимает заказы 📝 и разносит блюда. Кухня делает "тяжёлую" работу. Event Loop 🔄 следит, чтобы готовые блюда были съедены 😋.
Ещё важно❗️: Два подоконника: блюда (callback queue) и закуски (microtask queue). Официант сначала проверяет закуски, потом блюда.
В итоге, Event Loop🔄 позволяет JavaScript выполнять задачи асинхронно🚀, не блокируя основной поток, и обеспечивает отзывчивость интерфейса👍
· 08.12.2024
Мне понравилась аналогия с официантом, но очень хочется более подробный пост с разбором деталей)
0
ответить
коммент скрыт — часть юзеров считает его токсичным или некорректным
коммент удалён