Esta traducción está incompleta. Por favor, ayuda a traducir este artículo del inglés.

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

Syntax

[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.

Description

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 ejecusió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.

Examples

If a Promise is passed to an await expression, it waits for the Promise to be fulfilled and returns the fulfilled value.

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

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

If the value is not a Promise, it converts the value to a resolved Promise, and waits for it.

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

If the Promise is rejected, the rejected value is thrown.

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

Specifications

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

Browser compatibility

FeatureChromeEdgeFirefoxInternet ExplorerOperaSafari
Soporte básico55 Si52 ?4210.1
FeatureAndroid webviewChrome para AndroidEdge mobileFirefox para AndroidIE mobileOpera AndroidiOS Safari
Soporte básico5555 Si52 ?4210.1

See also

Etiquetas y colaboradores del documento

 Colaboradores en esta página: JavierHspn, rcchristiane
 Última actualización por: JavierHspn,