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

Для чего нужен async?

Асинхронность и Event Loop

`async` нужен, чтобы объявить асинхронную функцию: она всегда возвращает промис и позволяет использовать внутри `await`.

Что делает async

  • Помечает функцию как асинхронную.
  • Функция всегда возвращает промис: возвращённое значение оборачивается в Promise.resolve, а throw — в Promise.reject.
  • Разрешает применять await внутри для ожидания промисов.
async function getData() {
  return 42;
}
getData().then((v) => console.log(v)); // 42 — вернулся промис

async + await

async function loadUser(id) {
  const res = await fetch(`/users/${id}`);
  return res.json();
}

await приостанавливает функцию до разрешения промиса, не блокируя основной поток.

Обработка ошибок

async function safe() {
  try {
    const data = await loadUser(1);
  } catch (e) {
    console.error(e); // ловит reject
  }
}

Зачем нужен

  • Пишет асинхронный код в синхронном виде.
  • Заменяет длинные цепочки .then() на читаемую последовательность.
  • Удобная обработка ошибок через try/catch.

Коротко для собеседования

async делает функцию асинхронной: она всегда возвращает промис и разрешает await внутри. Позволяет писать асинхронный код в синхронном стиле с try/catch вместо цепочек .then().

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