AsyncDisposableStack.prototype.use()
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 use() von AsyncDisposableStack-Instanzen registriert einen Wert im Stack, der das Protokoll zur asynchronen Ressourcenfreigabe implementiert.
Allgemeine Informationen zur Methode use() finden Sie unter DisposableStack.prototype.use().
Syntax
use(value)
Parameter
value-
Der Wert, der im Stack registriert werden soll. Er muss entweder eine Methode
[Symbol.asyncDispose]()oder[Symbol.dispose]()enthalten odernullbeziehungsweiseundefinedsein.
Rückgabewert
Derselbe value, der übergeben wurde.
Ausnahmen
TypeError-
Wird ausgelöst, wenn
valuewedernullnochundefinedist und keine Methode[Symbol.asyncDispose]()oder[Symbol.dispose]()enthält. ReferenceError-
Wird ausgelöst, wenn der Stack bereits freigegeben wurde.
Beispiele
>use() verwenden
Diese Funktion liest eine Datei (als Node.js-FileHandle) und gibt deren Inhalt zurück. Das Datei-Handle wird automatisch geschlossen, wenn die Funktion abgeschlossen ist, da die Klasse FileHandle eine Methode [Symbol.asyncDispose]() implementiert, die die Datei asynchron schließt.
async function readFileContents(path) {
await using disposer = new AsyncDisposableStack();
const handle = disposer.use(await fs.open(path));
const data = await handle.read();
return data;
// The disposer is disposed here, which causes handle to be closed too
}
Spezifikationen
| Spezifikation |
|---|
| ECMAScript Async Explicit Resource Management> # sec-asyncdisposablestack.prototype.use> |