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

js
use(value)

Parameter

value

Der Wert, der im Stack registriert werden soll. Muss entweder eine [Symbol.asyncDispose]() oder [Symbol.dispose]()-Methode enthalten oder null oder undefined sein.

Rückgabewert

Der gleiche value, der übergeben wurde.

Ausnahmen

TypeError

Wird ausgelöst, wenn value nicht null oder undefined 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.

js
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

Browser-Kompatibilität

Siehe auch