| [ Web Proxy ] |
| Viewing: https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Operators/async_function | [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.
La palabra clave async function puede ser utilizada para definir funciones async dentro de expresiones.
Tambin se pueden definir funciones asncronas utilizando un enunciado de funcin asncrona.
async function [nombre]([param1[, param2[, ..., paramN]]]) {
enunciados
}
A partir de ES2015 (ES6), tambin se pueden emplear funciones flecha.
nameEl nombre de la funcin. Puede ser omitida, en cuyo caso la funcin es annima. El nombre es slo local al cuerpo de la funcin.
paramNEl nombre de un argumento a ser pasado a la funcin.
statementsLos enunciados que componen el cuerpo de la funcin.
Una expresin async function es muy similar, y casi tiene la misma sintaxis que, una async function statement. La principal diferencia entre una expresin async function y un enunciado async function es el nombre de la funcin, que puede ser omitido en una expresin async function para crear funciones anonymous. Una expresin async function puede ser utilizada como un IIFE (Expresin de funcin inmediatamente invocada, Immediately Invoked Function Expression) que se ejecuta tan rpido como es definida. Ver el captulo sobre funciones para tener ms informacin.
function resuelve2SegundosDespues(x) {
return new Promise((resolve) => {
setTimeout(() => {
resolve(x);
}, 2000);
});
}
const agregar = async function (x) {
// Expresin de una funcin asncrona asignada a una variable
let a = await resuelve2SegundosDespues(20);
let b = await resuelve2SegundosDespues(30);
return x + a + b;
};
agregar(10).then((v) => {
console.log(v); // imprime 60 despus de 4 segundos.
});
(async function (x) {
// expresin de una funcin asncrona utilizada como una IIFE
let p_a = resuelve2SegundosDespues(20);
let p_b = resuelve2SegundosDespues(30);
return x + (await p_a) + (await p_b);
})(10).then((v) => {
console.log(v); // imprime 60 despus de 2 segundos.
});
| Specification |
|---|
| ECMAScript 2027 LanguageSpecification # sec-async-function-definitions |
async functionAsyncFunctionawaitThis page was last modified on 5 ago 2023 by MDN contributors.
Your 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 |