[ Web Proxy ]
URL:
Viewing: https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/AsyncFunction [Back]  [Original]

Funciones asncronas - JavaScript | MDN

Esta pgina ha sido traducida del ingls por la comunidad. Aprende ms y nete a la comunidad de MDN Web Docs.

View in English Always switch to English

Funciones asncronas

Baseline Widely available

This feature is well established and works across many devices and browser versions. Its been available across browsers since abril de 2017.

El constructor AsyncFunction crea un nuevo objeto async function. En JavaScript, cada funcin asncrona es un objeto AsyncFunction.

Nota: AsyncFunction no es un objeto global. Este puede ser obtenido como resultado del siguiente cdigo.

js
Object.getPrototypeOf(async function () {}).constructor;

In this article

Sintaxis

js
new AsyncFunction(arg0, functionBody);
new AsyncFunction(arg0, arg1, functionBody);
new AsyncFunction(arg0, arg1, ...argN, functionBody);

Parmetros

arg1, arg2, ... argN

Nombres a ser usados por la funcin como los nombres de los argumentos. Cada uno debe ser una cadena que corresponda a un identificador vlido en JavaScript (cualquier identificador, parmetro rest, o parmetro desestructurado, opcionalmente con un valor por defecto), o una lista de tales cadenas separadas por comas.

As mismo, los parmetros se procesan de la misma manera que las declaraciones de funciones, aceptando espacios y comentarios. Por ejemplo: "x", "theValue = 42", "[a, b] /* numbers */" o "x, theValue = 42, [a, b] /* numbers */". ("x, theValue = 42", "[a, b]" es tambin correcto, pero muy confuso para leer).

functionBody

Una cadena que contiene las sentencias de JavaScript que componen la definicin de la funcin.

Descripcin

Los objetos async function creados con el constructor AsyncFunction son procesados en el momento que la funcin es creada. Esto es menos eficiente que declarar una funcin asincrona con un async function expression y llamarla con eso en tu cdigo , ya que las funciones son procesadas junto al resto del cdigo.

Todos los argumentos que son pasados a la funcin son tratados por los nombres de los identificadores de los parmetros en la funcin creada, en el orden en que son pasados a la funcin.

Nota: Las async functions creadas con el constructor AsyncFunction no crean closures en sus contextos creados, siempre son creados en el contexto global.

Cuando se ejecutan, solamente podran acceder a sus variables locales y globales, no a las variables de otros contextos en el cual el constructor AsyncFuction fue llamado.

Esto es distinto de usar eval con cdigo para una expresin de funcin asncrona.

Invocar el constructor AsyncFunction coomo una funcin (sin usar el operador new) tiene el mismo efecto que invocarlo como un constructor.

Ejemplos

Creando una funcin asncrona con el constructor AsyncFunction()

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

let AsyncFunction = Object.getPrototypeOf(async function () {}).constructor;

let a = new AsyncFunction(
  "a",
  "b",
  "return await resolveAfter2Seconds(a) + await resolveAfter2Seconds(b);",
);

a(10, 20).then((v) => {
  console.log(v); // imprime 30 despus de 4 segundos
});

Especificaciones

Specification
ECMAScript 2027 LanguageSpecification
# sec-async-function-objects

Compatibilidad con navegadores

Vase tambin


Web Proxy Viewer  |  New URL  |  Original Page