PassFront
  1. PassFront
  2. База знаний
  3. Асинхронность и Event Loop

Для чего используются промисы?

Асинхронность и 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. Дают читаемость, предсказуемость и удобную обработку ошибок.

Другие вопросы раздела