await

Der await Operator wird genutzt, um auf einen Promise zu warten. Er kann nur in einer async Funktion benutzt werden.

Syntax

[rv] = await expression;
expression
Ein Promise oder jeder Wert, auf den gewartet wird.
rv

Gibt den ermittelten Wert des Promise zur├╝ck, oder den Wert selbst, wenn es sich nicht um ein Promise handelt.

Beschreibung

Der await Ausdruck l├Ąsst async Funktionen pausieren, bis ein Promise erf├╝llt oder abgewiesen ist, und f├╝hrt die async danach weiter aus. Wenn die Funktion weiter ausgef├╝hrt wird, ist der Wert des await Ausdrucks der Wert des erf├╝llten Promise.

Wenn das Promise abgewiesen wird, wirft der await Ausdruck eine Exception mit dem zur├╝ckgewiesenen Wert.

Ist der Wert des Ausdrucks, der auf den await Operator folgt, kein Promise ist, wird dieser zu einem erf├╝llten Promise konvertiert.

Beispiele

Wenn ein Promise im await Ausdruck genutzt wird, wartet dieser, bis das Promise fertig ist und gibt den ermittelten Wert zur├╝ck.

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

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

Wenn der Wert kein Promise ist, wird dieser zu einem erf├╝llten Promise konvertiert und dessen Wert zur├╝ckgegeben.

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

Wird ein Promise abgewiesen, so wird eine Exception mit dem zur├╝ckgewiesene Wert geworfen.

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

Abfangen von abgewiesenen Promises ohne try-Block.

var response = await promisedFunction().catch((err) => { console.log(err); });
// response will be undefined if the promise is rejected

Spezifikationen

Spezifikation Status Kommentar
ECMAScript (ECMA-262)
Die Definition von 'async functions' in dieser Spezifikation.
Lebender Standard Initiale Definition in ES2017.

Browserkompatibilit├Ąt

BCD tables only load in the browser

Siehe auch