AsyncDisposableStack.prototype.adopt()
Die adopt()
-Methode von AsyncDisposableStack
-Instanzen registriert einen Wert, der das asynchrone Entsorgungsprotokoll nicht implementiert, im Stack, indem eine benutzerdefinierte Entsorgungsfunktion bereitgestellt wird.
Siehe DisposableStack.prototype.adopt()
für allgemeine Informationen über die adopt()
-Methode.
Syntax
adopt(value, onDispose)
Parameter
Rückgabewert
Der gleiche value
, der übergeben wurde.
Ausnahmen
TypeError
-
Wird ausgelöst, wenn
onDispose
keine Funktion ist. ReferenceError
-
Wird ausgelöst, wenn der Stack bereits entsorgt wurde.
Beispiele
Verwendung von adopt()
Diese Funktion erstellt einen Datei-Handle (als Node.js FileHandle
), der geschlossen wird, wenn die Funktion abgeschlossen ist. Wir nehmen an, dass der Datei-Handle das asynchrone Entsorgungsprotokoll nicht implementiert (tatsächlich tut er dies), daher verwenden wir adopt()
, um ihn im Stack zu registrieren. Da die Methode handle.close()
ein Promise zurückgibt, müssen wir einen AsyncDisposableStack
verwenden, damit die Entsorgung abgewartet wird.
async function readFile(path) {
await using disposer = new AsyncDisposableStack();
const handle = disposer.adopt(
fs.open(path),
async (handle) => await handle.close(),
);
const data = await handle.read();
// The handle.close() method is called and awaited here before exiting
return data;
}
Spezifikationen
Specification |
---|
ECMAScript Async Explicit Resource Management # sec-asyncdisposablestack.prototype.adopt |