Constructeur AsyncGeneratorFunction()
Baseline
Large disponibilité
Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis janvier 2020.
Attention : Les arguments passés à ce constructeur sont analysés et exécutés dynamiquement en tant que JavaScript. Les API de ce type sont connues sous le nom de points d'injection et peuvent potentiellement être un vecteur pour des attaques de cross-site-scripting (XSS).
Vous pouvez atténuer ce risque en passant toujours des objets TrustedScript au lieu de chaînes de caractères et en appliquant des types de confiance.
Voir les considérations de sécurité dans la référence du constructeur Function() pour plus d'informations.
Le constructeur AsyncGeneratorFunction() crée des objets AsyncGeneratorFunction.
Notez que AsyncGeneratorFunction n'est pas un objet global. Il peut être obtenu en évaluant le code suivant :
const AsyncGeneratorFunction = async function* () {}.constructor;
Le constructeur AsyncGeneratorFunction() n'est pas destiné à être utilisé directement, et toutes les mises en garde mentionnées dans la description de Function() s'appliquent à AsyncGeneratorFunction().
Syntaxe
new AsyncGeneratorFunction(functionBody)
new AsyncGeneratorFunction(arg1, functionBody)
new AsyncGeneratorFunction(arg1, arg2, functionBody)
new AsyncGeneratorFunction(arg1, arg2, /* …, */ argN, functionBody)
AsyncGeneratorFunction(functionBody)
AsyncGeneratorFunction(arg1, functionBody)
AsyncGeneratorFunction(arg1, arg2, functionBody)
AsyncGeneratorFunction(arg1, arg2, /* …, */ argN, functionBody)
Note :
AsyncGeneratorFunction() peut être appelé avec ou sans new. Les deux créent une nouvelle instance de AsyncGeneratorFunction.
Paramètres
Voir Function().
Exemples
On notera que ces exemples omettent l'utilisation des types de confiance pour des raisons de concision. Pour un code montrant l'approche recommandée, voir Utiliser TrustedScript dans eval().
Utilisation du constructeur
L'exemple suivant utilise le constructeur AsyncGeneratorFunction pour créer une fonction génératrice asynchrone.
const AsyncGeneratorFunction = async function* () {}.constructor;
const createAsyncGenerator = new AsyncGeneratorFunction("a", "yield a * 2");
const asyncGen = createAsyncGenerator(10);
asyncGen.next().then((res) => console.log(res.value)); // 20
Spécifications
| Spécification |
|---|
| ECMAScript® 2027 Language Specification> # sec-asyncgeneratorfunction-constructor> |