Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Справочник JavaScript

async function

Функция, которая всегда возвращает промис и внутри которой можно использовать await.

Доступно с: ES2017

Синтаксис

async function name() { … } / async () => { … }

Примеры

Результат async-функции — промис:

async function getNumber() {
  return 42;
}
 
console.log(getNumber() instanceof Promise);
console.log(await getNumber());

Результат:

true
42

Последовательные шаги с обработкой ошибок:

const wait = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
 
const loadUser = async (id) => {
  await wait(50);
  if (id < 0) throw new Error('Bad id');
  return { id, name: 'Anna' };
};
 
try {
  const user = await loadUser(1);
  console.log(user.name);
  await loadUser(-1);
} catch (error) {
  console.log(error.message);
}

Результат:

Anna
Bad id

Примечания

throw внутри async-функции превращается в отклонённый промис, а return — в выполненный. Стрелочные функции и методы тоже бывают async.

См. также

  • await — Ждёт результата промиса и возвращает его значение.
  • Promise — Обещание результата, который будет готов позже: успех или ошибка.
  • try...catch — Перехватывает ошибки, чтобы программа не остановилась.

Вопросы и ответы по теме

В учебнике

  • async и await — Асинхронные функции в JavaScript: async, await, обработка ошибок через try...catch, последовательное и параллельное ожидание.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.