Baseline Widely available
O construtor AsyncFunction
cria um novo objeto async function
. Em JavaScript cada função assÃncrona é atualmente um objeto do tipo AsyncFunction
.
Note queAsyncFunction
não é um objeto global. Ele poderia ser obtido analisando o seguinte código:
Object.getPrototypeOf(async function () {}).constructor;
Sintaxe
new AsyncFunction([arg1[, arg2[, ...argN]],] functionBody)Parameters
arg1, arg2, ... argN
Nomes 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
".
functionBody
Uma string contendo as declarações JavaScript que compõem a definição da função.
Objetos async function
criados com o construtor AsyncFunction
são tratados quando a função é criada. Isso é menos eficiente que declarar uma função async com a expression 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 construtor AsyncFunction
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 foi AsyncFunction
chamado. Isso é diferente de usar eval
com código para uma expressão async function.
Invocar o construtor AsyncFunction
como uma função (sem usar o operador new
) tem o mesmo efeito de invocá-lo como um construtor.
AsyncFunction.length
A propriedade tamanho do construtor da AsyncFunction
cujo valor é 1.
AsyncFunction.prototype
Permite a adição de propriedades para todos os objetos async function.
AsyncFunction
prototype object Propriedades AsyncFunction
instances
Instância AsyncFunction
herdam métodos e propriedades do AsyncFunction.prototype
. Com todos os contrutores, que podem mudar o prototype do objeto construtor para fazer mudanças em todas as instâncias do AsyncFunction
.
AsyncFunction
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 Compatibilidade com navegadores Veja também
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4