Для чего используются промисы?
Асинхронность и Event Loop
Промисы используют для управления асинхронными операциями: сетевыми запросами, таймерами, любыми отложенными результатами, чтобы избежать callback hell и удобно обрабатывать ошибки.
Для чего используют
Асинхронные операции
Сетевые запросы, чтение файлов, таймеры — всё, где результат приходит позже:
fetch('/api/data')
.then((res) => res.json())
.then((data) => render(data))
.catch((error) => handleError(error));Замена callback hell
Плоские цепочки вместо вложенных колбэков:
// Вместо вложенности
getUser(id).then(getPosts).then(getComments).then(render);Единая обработка ошибок
Один catch ловит ошибку из всей цепочки.
Композиция асинхронных операций
Promise.all([fetchA(), fetchB()]); // параллельно
Promise.race([request, timeout]); // таймаут
Promise.allSettled([...]); // все со статусамиОснова async/await
async/await — синтаксический сахар над промисами.
Что дают
- Плоский читаемый код.
- Предсказуемый порядок (микрозадачи).
- Гарантия однократного результата.
- Комбинаторы для параллельности.
Коротко для собеседования
Промисы используют для асинхронных операций (запросы, таймеры, отложенные результаты): плоские цепочки вместо callback hell, единая обработка ошибок через catch, композиция (all/race/allSettled). Основа async/await. Дают читаемость, предсказуемость и удобную обработку ошибок.