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