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

Expresin de funcin asncrona - 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

Expresin de funcin asncrona

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.

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.

In this article

Sintaxis

async function [nombre]([param1[, param2[, ..., paramN]]]) {
  enunciados
}

A partir de ES2015 (ES6), tambin se pueden emplear funciones flecha.

Parmetros

name

El nombre de la funcin. Puede ser omitida, en cuyo caso la funcin es annima. El nombre es slo local al cuerpo de la funcin.

paramN

El nombre de un argumento a ser pasado a la funcin.

statements

Los enunciados que componen el cuerpo de la funcin.

Descripcin

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.

Ejemplos

Ejemplo sencillo

js
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.
});

Especificaciones

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

Compatibilidad de los navegadores

Ver tambin


Web Proxy Viewer  |  New URL  |  Original Page