Модуль 3.2: Асинхронность
Синхронный vs асинхронный код
Узнаём разницу между синхронным и асинхронным кодом, зачем нужна асинхронность и как setTimeout с setInterval работают под капотом.
Event Loop
Разбираем сердце асинхронности JavaScript: как работает Event Loop, чем отличаются macrotask и microtask, и почему Promise.then выполняется раньше setTimeout.
Callbacks
Разбираемся с callback-функциями: зачем они нужны, что такое Callback Hell и как с ним бороться до появления промисов.
Promises
Знакомимся с Promise — объектом для работы с асинхронными операциями: состояния, .then/.catch/.finally и как промисы решают проблемы callback-ада.
Цепочки промисов
Разбираемся, как строить цепочки .then() для последовательных асинхронных операций, обрабатывать ошибки и передавать данные между шагами.
Promise API
Изучаем все статические методы Promise: Promise.all, allSettled, race, any — и новый Promise.try из ES2025.
Async/Await
Изучаем async/await — синтаксический сахар над промисами, который делает асинхронный код таким же читаемым, как синхронный.
Практика: работа с API
Применяем всё изученное: fetch, async/await, обработка ошибок, AbortController и паттерны реальной работы с REST API.