AsyncDisposableStack.prototype.adopt()
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
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
onDisposekeine 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> |
Browser-Kompatibilität
Loading…