Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

Iterator.prototype[Symbol.dispose]()

Eingeschränkt verfügbar

Diese Funktion ist nicht Baseline, da sie in einigen der am weitesten verbreiteten Browser nicht funktioniert.

Want more browser support for this feature? Tell us why.

Die Methode [Symbol.dispose]() von Iterator-Instanzen implementiert das Disposable-Protokoll und ermöglicht es, die Instanz bei der Verwendung mit using freizugeben. Sie ruft die Methode return() von this auf, falls diese vorhanden ist.

Syntax

js
iterator[Symbol.dispose]()

Parameter

Keine.

Rückgabewert

Keiner (undefined).

Beispiele

Einen Iterator mit using deklarieren

Die Methode Symbol.dispose ist dafür vorgesehen, bei einer using-Deklaration automatisch aufgerufen zu werden. Dies ist nützlich, wenn Sie einen Iterator manuell durch Aufrufe seiner Methode next() durchlaufen. Wenn Sie ihn mit for...of oder auf ähnliche Weise durchlaufen, erfolgen Fehlerbehandlung und Bereinigung automatisch.

js
function* generateNumbers() {
  try {
    yield 1;
    yield 2;
    yield 3;
  } finally {
    console.log("Cleaning up");
  }
}

function doSomething() {
  using numbers = generateNumbers();
  const res1 = numbers.next();
  // Not iterating the rest of the numbers
  // Before the function exits, the async iterator is disposed
  // Logs "Cleaning up"
}

doSomething();

Spezifikationen

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

Browser-Kompatibilität

Siehe auch