Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in English Always switch to English

Iterator : méthode [Symbol.dispose]()

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.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

js
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.

js
function* genererNombres() {
  try {
    yield 1;
    yield 2;
    yield 3;
  } finally {
    console.log("Nettoyage");
  }
}

function faireQuelqueChose() {
  using numbers = genererNombres();
  const res1 = numbers.next();
  // Ne pas iterer le reste des nombres
  // Avant la fin de la fonction, l'iterateur asynchrone est dispose
  // Affiche "Nettoyage"
}

faireQuelqueChose();

Spécifications

Specification
ECMAScript Async Explicit Resource Management
# sec-%iteratorprototype%-@@dispose

Compatibilité des navigateurs

Voir aussi