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

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

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

js
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