await

El operador await es usado para esperar a una Promise. S贸lo puede ser usado dentro de una funci贸n async function.

Sintaxis

[rv] = await expression;
expression
Una Promise o cualquier otro valor por el cual haya que esperar.
rv

Regresa el valor terminado de la promesa o solamente un valor si no es unaPromise.

Descripci贸n

La expresi贸n await provoca que la ejecuci贸n de una funci贸n async sea pausada hasta que una Promise sea terminada o rechazada, y regresa a la ejecuci贸n de la funci贸n async despu茅s del t茅rmino. Al regreso de la ejecuci贸n, el valor de la expresi贸n await es la regresada por una promesa terminada.

Si la Promise es rechazada, el valor de la expresi贸n await tendr谩 el valor de rechazo.

Si el valor de la expresi贸n seguida del operador await  no es una promesa, ser谩 convertido a una resolved Promise.

Ejemplos

Si una Promise se pasa a una expresi贸n await, espera a que la Promise se resuelva y devuelve el valor resuelto.

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

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

Si el valor no es una Promise, convierte el valor a una Promise resuelta, y espera por dicho valor.

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

Si la Promise es rechazada, se lanza una excepci贸n con dicho el valor.

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

Especificaciones

Specification Status Comment
ECMAScript (ECMA-262)
La definici贸n de 'async functions' en esta especificaci贸n.
Living Standard Initial definition in ES2017.

Compatibilidad con navegadores

BCD tables only load in the browser

V茅ase tambi茅n