Iterator.prototype[Symbol.dispose]()
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Die [Symbol.dispose]()-Methode von Iterator-Instanzen implementiert das disposable protocol und ermöglicht es, den Iterator zu entsorgen, wenn er mit using verwendet wird. Sie ruft die return()-Methode von this auf, falls diese existiert.
Syntax
js
iterator[Symbol.dispose]()
Parameter
Keine.
Rückgabewert
Keiner (undefined).
Beispiele
>Deklarieren eines Iterators mit using
Die Symbol.dispose-Methode soll in einer using-Deklaration automatisch aufgerufen werden. Dies ist nützlich, wenn Sie einen Iterator haben, den Sie manuell durch Aufrufen seiner next()-Methode durchlaufen; wenn Sie ihn mit for...of oder etwas Ähnlichem durchlaufen, werden Fehlerbehandlung und Bereinigung automatisch durchgeführt.
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
| Specification |
|---|
| ECMAScript Async Explicit Resource Management> # sec-%iteratorprototype%-@@dispose> |
Browser-Kompatibilität
Loading…