AsyncIterator.prototype[Symbol.asyncDispose]()
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.asyncDispose]() von AsyncIterator-Instanzen implementiert das Protokoll zur asynchronen Ressourcenfreigabe. Dadurch kann eine Instanz bei der Verwendung mit await using freigegeben werden. Die Methode ruft die return()-Methode von this auf und wartet auf deren Abschluss, sofern sie vorhanden ist.
Syntax
asyncIterator[Symbol.asyncDispose]()
Parameter
Keine.
Rückgabewert
Keiner (undefined).
Beispiele
>Einen asynchronen Iterator mit await using deklarieren
Die Methode Symbol.asyncDispose ist dafür vorgesehen, bei einer await using-Deklaration automatisch aufgerufen zu werden. Das ist nützlich, wenn Sie einen asynchronen Iterator manuell durch Aufrufe seiner next()-Methode durchlaufen. Wenn Sie ihn mit for await...of oder auf ähnliche Weise durchlaufen, erfolgen Fehlerbehandlung und Bereinigung automatisch.
async function* generateNumbers() {
try {
yield 1;
yield 2;
yield 3;
} finally {
console.log("Cleaning up");
}
}
async function doSomething() {
await using numbers = generateNumbers();
const res1 = await 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-asyncdisposablestack.prototype-@@asyncDispose> |