AsyncDisposableStack.prototype.use()
Die use()
-Methode von AsyncDisposableStack
-Instanzen registriert einen Wert, der das asynchrone Disposable-Protokoll in den Stack implementiert.
Siehe DisposableStack.prototype.use()
für allgemeine Informationen über die use()
-Methode.
Syntax
use(value)
Parameter
value
-
Der Wert, der im Stack registriert werden soll. Muss entweder eine
[Symbol.asyncDispose]()
oder[Symbol.dispose]()
-Methode enthalten odernull
oderundefined
sein.
Rückgabewert
Der gleiche value
, der übergeben wurde.
Ausnahmen
TypeError
-
Wird ausgelöst, wenn
value
nichtnull
oderundefined
ist und keine[Symbol.asyncDispose]()
oder[Symbol.dispose]()
-Methode enthält. ReferenceError
-
Wird ausgelöst, wenn der Stack bereits entsorgt wurde.
Beispiele
Verwendung von use()
Diese Funktion liest eine Datei (als Node.js FileHandle
) und gibt deren Inhalt zurück. Der Datei-Handle wird automatisch geschlossen, wenn die Funktion abgeschlossen ist, da die FileHandle
-Klasse eine [Symbol.asyncDispose]()
-Methode implementiert, die die Datei asynchron schließt.
async function readFileContents(path) {
await using disposer = new AsyncDisposableStack();
const handle = disposer.use(fs.open(path));
const data = await handle.read();
return data;
// The disposer is disposed here, which causes handle to be closed too
}
Spezifikationen
Specification |
---|
ECMAScript Async Explicit Resource Management # sec-asyncdisposablestack.prototype.use |