| [ Web Proxy ] |
| Viewing: https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/AsyncFunction | [Back] [Original] |
Get to know MDN better
Esta pgina ha sido traducida del ingls por la comunidad. Aprende ms y nete a la comunidad de MDN Web Docs.
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.
Object.getPrototypeOf(async function () {}).constructor;
new AsyncFunction(arg0, functionBody);
new AsyncFunction(arg0, arg1, functionBody);
new AsyncFunction(arg0, arg1, ...argN, functionBody);
arg1, arg2, ... argNNombres 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).
functionBodyUna cadena que contiene las sentencias de JavaScript que componen la definicin de la funcin.
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.
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
});
| Specification |
|---|
| ECMAScript 2027 LanguageSpecification # sec-async-function-objects |
FunctionThis page was last modified on 29 may 2026 by MDN contributors.
AsyncFunctionFunctionObject/FunctionYour blueprint for a better internet.
Portions of this content are 19982026 by individual mozilla.org contributors. Content available under a Creative Commons license.
| Web Proxy Viewer | New URL | Original Page |