Get to know MDN better
Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.
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.
L'objet AsyncGenerator est retourné par une fonction génératrice asynchrone et il respecte à la fois le protocole d'itérable asynchrone et le protocole d'itérateur asynchrone.
Les méthodes des générateurs asynchrones renvoient toujours des objets Promise.
AsyncGenerator est une sous‑classe de la classe cachée AsyncIterator.
Il n'existe pas d'entité JavaScript correspondant au constructeur AsyncGenerator. Les instances d'AsyncGenerator doivent être retournées par des fonctions génératrices asynchrones :
Il existe uniquement un objet caché qui est l'objet prototype partagé par tous les objets créés par les fonctions génératrices asynchrones. Cet objet est souvent présenté sous la forme AsyncGenerator.prototype pour lui donner l'apparence d'une classe, mais il devrait plutôt s'appeler AsyncGeneratorFunction.prototype.prototype, car AsyncGeneratorFunction est une véritable entité JavaScript. Pour comprendre la chaîne de prototypes des instances d'AsyncGenerator, voir AsyncGeneratorFunction.prototype.prototype.
Ces propriétés sont définies sur AsyncGenerator.prototype et partagées par toutes les instances d'AsyncGenerator.
AsyncGenerator.prototype.constructorLa fonction constructeur qui a créé l'objet instance. Pour les instances d'AsyncGenerator, la valeur initiale est AsyncGeneratorFunction.prototype.
Note : Les objets AsyncGenerator ne conservent pas de référence vers la fonction génératrice asynchrone qui les a créés.
La valeur initiale de la propriété [Symbol.toStringTag] est la chaîne de caractères "AsyncGenerator". Cette propriété est utilisée par Object.prototype.toString().
Hérite aussi des méthodes d'instance de sa super‑classe AsyncIterator.
AsyncGenerator.prototype.next()Retourne une promesse (Promise) qui sera résolue avec la valeur fournie par l'expression yield.
AsyncGenerator.prototype.return()Agit comme si une instruction return était insérée dans le corps du générateur à la position suspendue actuelle, ce qui termine le générateur et lui permet d'effectuer des opérations de nettoyage lorsqu'il est combiné avec un bloc try...finally.
AsyncGenerator.prototype.throw()Agit comme si une instruction throw était insérée dans le corps du générateur à la position suspendue actuelle, ce qui informe le générateur d'une condition d'erreur et lui permet de gérer l'erreur, ou d'effectuer un nettoyage et de se fermer.
L'exemple suivant itère sur un générateur asynchrone, affichant les valeurs 1-6 dans la console à des intervalles de temps décroissants. Remarquez qu'à chaque fois qu'une Promise est yieldée, elle est automatiquement résolue dans la boucle for await...of.
| ECMAScript® 2027 Language Specification # sec-asyncgenerator-objects |
Activez JavaScript pour afficher ce tableau de compatibilité des navigateurs.
Cette page a été modifiée le 11 nov. 2025 par les contributeur·ice·s du MDN.
Votre modèle pour un internet meilleur.
Visitez la société mère à but non lucratif de Mozilla Corporation, la Fondation Mozilla.
Certaines parties de ce contenu sont protégées par le droit d'auteur ©1998—2026 des contributeurs individuels de mozilla.org. Contenu disponible sous une licence Creative Commons.