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.

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

Update compatibility data on GitHub
OrdinateurMobileServeur
ChromeEdgeFirefoxInternet ExplorerOperaSafariWebview AndroidChrome pour AndroidFirefox pour AndroidOpera pour AndroidSafari sur iOSSamsung InternetNode.js
asyncIteratorChrome Support complet 63Edge Aucun support NonFirefox Support complet 57IE Aucun support NonOpera Support complet 50Safari Support complet 11.1WebView Android Support complet 63Chrome Android Support complet 63Firefox Android Aucun support NonOpera Android Support complet 46Safari iOS Aucun support NonSamsung Internet Android Support complet 8.0nodejs Support complet 10.0.0

Légende

Support complet  
Support complet
Aucun support  
Aucun support

Voir aussi