Esta página foi traduzida do inglês pela comunidade.Saiba mais e junte-se à comunidade MDN Web Docs.
AsyncFunction
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since abril de 2017.
OconstrutorAsyncFunction cria um novo objetoasync function. Em JavaScript cada função assíncrona é atualmente um objeto do tipoAsyncFunction.
Note queAsyncFunction não é um objeto global. Ele poderia ser obtido analisando o seguinte código:
Object.getPrototypeOf(async function () {}).constructor;In this article
Sintaxe
new AsyncFunction([arg1[, arg2[, ...argN]],] functionBody)
Parameters
arg1, arg2, ... argNNomes que vão ser usados pela função como argumentos formais. Cada um deve ser uma string que corresponde a um indentificador JavaScript válido ou uma lista das strings separadas com uma vírgula; por exemplo "
x", "oValor", or "a,b".functionBodyUma string contendo as declarações JavaScript que compõem a definição da função.
Descrição
Objetosasync function criados com o construtorAsyncFunction são tratados quando a função é criada. Isso é menos eficiente que declarar uma função async com aexpression async function e chama-la com seu código, porque essas funções são tratadas com o resto do código.
Todos os argumentos passado para a função são tratados como nomes dos identificadores dos parâmetros na função que vai ser criada, na ordem que eles são passados.
Nota:async functions criadas com o construtorAsyncFunction não cria closures para seus contextos de criação; elas sempre criadas no escopo global. Quando rodar eles, eles só poderão acessar suas variáveis local e as globais, mas não as que estão no escopo que o construtor foiAsyncFunction chamado. Isso é diferente de usareval com código para uma expressão async function.
Invocar o construtorAsyncFunction como uma função (sem usar o operadornew) tem o mesmo efeito de invocá-lo como um construtor.
Propriedades
AsyncFunction.lengthA propriedade tamanho do construtor da
AsyncFunctioncujo valor é 1.AsyncFunction.prototypePermite a adição de propriedades para todos os objetos async function.
AsyncFunction prototype object
>Propriedades
AsyncFunction instances
InstânciaAsyncFunction herdam métodos e propriedades doAsyncFunction.prototype. Com todos os contrutores, que podem mudar o prototype do objeto construtor para fazer mudanças em todas as instâncias doAsyncFunction.
Exemplos
>Criando uma async function a partir do construtor de umaAsyncFunction
function resolveAfter2Seconds(x) { return new Promise((resolve) => { setTimeout(() => { resolve(x); }, 2000); });}var AsyncFunction = Object.getPrototypeOf(async function () {}).constructor;var a = new AsyncFunction( "a", "b", "return await resolveAfter2Seconds(a) + await resolveAfter2Seconds(b);",);a(10, 20).then((v) => { console.log(v); // imprime 30 após 4 seconds});Especificações
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-async-function-objects> |