Symbol.asyncIterator
Le symbole connu Symbol.asyncIterator
définit l'itérateur asynchrone par défaut d'un objet. Si cette propriété est définie sur un objet, celui-ci est un itérable asynchrone et peut être utilisé avec une boucle for await...of
.
Le code source de cet exemple interactif est disponible dans un dépôt GitHub. Si vous souhaitez contribuer à ces exemples, n'hésitez pas à cloner https://github.com/mdn/interactive-examples et à envoyer une pull request !
Attributs de Symbol.asyncIterator |
|
---|---|
Écrivable | Non |
Énumérable | Non |
Configurable | Non |
Description
Le symbole Symbol.asyncIterator
est un symbole natif utilisé pour accéder à la méthode @@asyncIterator
d'un objet. Pour qu'un objet soit un itérable asynchrone, il doit avoir une clé Symbol.asyncIterator
.
Exemples
Itérable asynchrone personnalisé
Il est possible de définir son propre itérable en définissant la propriété [Symbol.asyncIterator]
d'un objet :
const myAsyncIterable = new Object();
myAsyncIterable[Symbol.asyncIterator] = async function*() {
yield "coucou";
yield "l'itération";
yield "asynchrone !";
};
(async () => {
for await (const x of myAsyncIterable) {
console.log(x);
// expected output:
// "coucou"
// "l'itération"
// "asynchrone !"
}
})();
Itérables asynchrones natifs
Il n'existe actuellement pas d'objets JavaScript natifs qui possèdent la clé [Symbol.asyncIterator]
par défaut. Toutefois, les flux (Streams) WHATWG pourraient devenir les premiers objets natifs itérables asynchrones.
Spécifications
Spécification | État | Commentaires |
---|---|---|
ECMAScript 2018 (ECMA-262) La définition de 'Symbol.asyncIterator' dans cette spécification. |
Standard |
Compatibilité des navigateurs
BCD tables only load in the browser