Encodera

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

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

Справочник JavaScript

await

Ждёт результата промиса и возвращает его значение.

Доступно с: ES2017

Синтаксис

await promise

Примеры

Дождаться значения:

const value = await Promise.resolve('ready');
 
console.log(value);

Результат:

ready

Последовательно и параллельно:

const wait = (ms) => new Promise((resolve) => setTimeout(() => resolve(ms), ms));
 
let start = Date.now();
await wait(100);
await wait(100);
console.log('sequential:', Math.round((Date.now() - start) / 100) * 100, 'ms');
 
start = Date.now();
await Promise.all([wait(100), wait(100)]);
console.log('parallel:', Math.round((Date.now() - start) / 100) * 100, 'ms');

Результат:

sequential: 200 ms
parallel: 100 ms

Примечания

await можно использовать только внутри async-функции или на верхнем уровне модуля. Ошибку отклонённого промиса перехватывает обычный try...catch.

Независимые операции не ждите по очереди — запускайте их вместе через Promise.all().

См. также

  • async function — Функция, которая всегда возвращает промис и внутри которой можно использовать await.
  • Promise — Обещание результата, который будет готов позже: успех или ошибка.
  • Promise.all — Ждёт выполнения всех промисов параллельно.

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

В учебнике

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

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

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