Expressão da função async
BaselineWidely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2017.
A palavra chave async pode ser usado para definir funções async dentro das expressões.Você tambem pode definir funções async usando a declaração de função async.
Sintaxe
async function [nome]([parametro1[, parametro2[, ..., parametroN]]]) { declarações}
Como noES2015, você tambem pode usararrow functions.
Parâmetros
nome
O nome da função.Pode ser omitida, na qual a função se torna anonima . O nome é somente local para o corpo da função.
parametroN
O nome do argumento passado para a função.
declarações
As declarações que compoem o corpo da função .
Descrição
Uma expressãoasync function
é muito similar, e tem quase a mesma sintaxe de umadeclaração async function
. A principal diferença entre uma expressãoasync function
e uma declaraçãoasync function
é onome da função, que pode ser omitido em expressõesasync function
para criarfunções anônimas. Uma expressãoasync function
pode ser utilizada como umIIFE (Immediately Invoked Function Expression, em tradução livre: Expressão de Função Invocada Imediatamente) que roda assim que definido. Veja também o capítulo sobrefunções para mais informações.
Exemplos
Exemplo simples
function resolveAfter2Seconds(x) { return new Promise((resolve) => { setTimeout(() => { resolve(x); }, 2000); });}(async function (x) { // async function expression usada como uma IIFE var a = resolveAfter2Seconds(20); var b = resolveAfter2Seconds(30); return x + (await a) + (await b);})(10).then((v) => { console.log(v); // imprime 60 após 2 segundo.});var add = async function (x) { // async function expression atribuída a uma variável var a = await resolveAfter2Seconds(20); var b = await resolveAfter2Seconds(30); return x + a + b;};add(10).then((v) => { console.log(v); // imprime 60 após 4 segundos.});
Especificações
Specification |
---|
ECMAScript® 2026 Language Specification # sec-async-function-definitions |