Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

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

js
use(value)

Parameter

value

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

Rückgabewert

Derselbe value, der übergeben wurde.

Ausnahmen

TypeError

Wird ausgelöst, wenn value weder null noch undefined ist 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.

js
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

Browser-Kompatibilität

Siehe auch