Iterator : méthode [Symbol.dispose]()
Disponibilité limitée
Cette fonctionnalité n'est pas Compatible car elle ne fonctionne pas dans certains des navigateurs les plus utilisés.
Vous voulez une meilleure prise en charge pour cette fonctionnalité ? Dites-nous pourquoi.
La méthode [Symbol.dispose]() des instances de Iterator implémente le protocole de disposition et permet de disposer de l'itérateur lorsqu'il est utilisé avec using. Elle appelle la méthode return() de this, si elle existe.
Syntaxe
iterator[Symbol.dispose]()
Paramètres
Aucun.
Valeur de retour
Aucune (undefined).
Exemples
>Déclarer un itérateur avec using
La méthode Symbol.dispose est destinée à être appelée automatiquement dans une déclaration using. Cela est utile si vous avez un itérateur que vous parcourez manuellement en appelant sa méthode next() ; si vous l'itérer avec for...of ou quelque chose de similaire, alors la gestion des erreurs et le nettoyage sont effectués automatiquement.
function* genererNombres() {
try {
yield 1;
yield 2;
yield 3;
} finally {
console.log("Nettoyage");
}
}
function faireQuelqueChose() {
using numbers = genererNombres();
const res1 = numbers.next();
// Ne pas itérer le reste des nombres
// Avant la fin de la fonction, l'itérateur asynchrone est disposé
// Affiche "Nettoyage"
}
faireQuelqueChose();
Spécifications
| Spécification |
|---|
| ECMAScript Async Explicit Resource Management> # sec-%iteratorprototype%-@@dispose> |
Compatibilité des navigateurs
Voir aussi
- La prothèse d'émulation (polyfill en anglais) de
Iterator.prototype[Symbol.dispose]danscore-js(angl.) - Gestion des ressources en JavaScript
- La propriété statique
Symbol.dispose - La déclaration
using