This page was translated from English by the community. Learn more and join the MDN Web Docs community.

View in English Always switch to English

await

Baseline Widely available *

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨март 2017 г.⁩.

* Some parts of this feature may have varying levels of support.

>

Оператор await используется для ожидания окончания Promise. Может быть использован только внутри async function или на верхнем уровне модуля.

Синтаксис

[rv] = await expression;
expression

Promise или любое другое значение для ожидания разрешения.

rv

Возвращает полученное из Promise значение, либо само значение, если оно не является Promise.

Описание

Оператор await заставляет функцию, объявленную с использованием оператора async, ждать выполнения Promise и продолжать выполнение после возвращения Promise значения. Впоследствии возвращает полученное из Promise значение. Если типом значения, к которому был применён оператор await, является не Promise, то значение приводится к успешно выполненному Promise.

Если Promise отклоняется, то await генерирует исключение с отклонённым значением.

Примеры

await ожидает разрешения Promise и возвращает полученное значение.

js
function resolveAfter2Seconds(x) {
  return new Promise((resolve) => {
    setTimeout(() => {
      resolve(x);
    }, 2000);
  });
}

async function f1() {
  var x = await resolveAfter2Seconds(10);
  console.log(x); // 10
}
f1();

Если типом значения является не Promise, значение преобразуется к успешно выполненному Promise.

js
async function f2() {
  var y = await 20;
  console.log(y); // 20
}
f2();

Если Promise отклонён, то выбрасывается исключение с переданным значением.

js
async function f3() {
  try {
    var z = await Promise.reject(30);
  } catch (e) {
    console.log(e); // 30
  }
}
f3();

Обработка отклонённого Promise без try/catch блока.

js
var response = await promisedFunction().catch((err) => {
  console.log(err);
});
// response получит значение undefined, если Promise будет отклонён

Спецификации

Specification
ECMAScript® 2026 Language Specification>
# sec-async-function-definitions>

Совместимость с браузерами

Смотрите также