AsyncIterator : méthode [Symbol.asyncDispose]()
Limited availability
Cette fonctionnalité n'est pas Compatible car elle ne fonctionne pas dans certains des navigateurs les plus utilisés.
La méthode [Symbol.asyncDispose]() des instances de AsyncIterator implémente le protocole d'élimination asynchrone et permet de libérer la ressource lorsqu'elle est utilisée avec await using. Elle appelle et attend la méthode return() de this, si celle‑ci existe.
Syntaxe
asyncIterator[Symbol.asyncDispose]()
Paramètres
Aucun.
Valeur de retour
Aucune (undefined).
Exemples
>Déclarer un itérateur asynchrone avec await using
La méthode Symbol.asyncDispose est destinée à être appelée automatiquement dans une déclaration await using. Ceci est utile si vous possédez un itérateur asynchrone que vous parcourez manuellement en appelant sa méthode next() ; si vous l'itérez avec for await...of ou un mécanisme similaire, la gestion des erreurs et le nettoyage sont effectués automatiquement.
async function* generateNumbers() {
try {
yield 1;
yield 2;
yield 3;
} finally {
console.log("Nettoyage");
}
}
async function doSomething() {
await using numbers = generateNumbers();
const res1 = await numbers.next();
// On n'itère pas le reste des valeurs
// Avant la fin de la fonction, l'itérateur asynchrone est libéré
// Affiche "Nettoyage"
}
doSomething();
Spécifications
| Specification |
|---|
| ECMAScript Async Explicit Resource Management> # sec-asyncdisposablestack.prototype-@@asyncDispose> |
Compatibilité des navigateurs
Voir aussi
- Gestion des ressources JavaScript
- La propriété statique
Symbol.asyncDispose - La déclaration
await using - Prothèse d'émulation de
AsyncIterator.prototype[Symbol.asyncDispose]danscore-js(angl.)