Die use()
-Methode von DisposableStack
-Instanzen registriert einen Wert, der das disposable-Protokoll zur Stack instanziiert.
value
Der Wert, der auf dem Stack registriert werden soll. Muss entweder eine [Symbol.dispose]()
-Methode enthalten oder null
oder undefined
sein.
Der gleiche value
, der übergeben wurde.
TypeError
Wird ausgelöst, wenn value
nicht null
oder undefined
ist und keine [Symbol.dispose]()
-Methode enthält.
ReferenceError
Wird ausgelöst, wenn der Stack bereits entsorgt ist.
Der Hauptzweck von use()
ist es, einen Wert zu registrieren, der das disposable-Protokoll auf dem Stack als Ãquivalent der using
-Deklaration instanziiert. Wenn der Wert das disposable-Protokoll nicht implementiert (es hat keine [Symbol.dispose]()
-Methode), verwenden Sie stattdessen adopt()
, indem Sie einen Rückruf übergeben, der die Aufräummethode der Ressource aufruft.
Sie sollten Ihre Ressource registrieren, sobald sie deklariert wird. Das bedeutet, dass Sie immer Ihre Ressourcenanforderungsausdrücke in use()
einwickeln sollten, anstatt sie in eine separate Anweisung zu extrahieren.
using disposer = new DisposableStack();
const reader = stream.getReader();
disposer.use(reader);
Beispiele Verwenden von use()
Dieser Code konsumiert einen ReadableStream
über einen ReadableStreamDefaultReader
. Der Reader wird automatisch geschlossen, wenn die Funktion abgeschlossen ist, vorausgesetzt, er implementiert eine [Symbol.dispose]()
-Methode, die die Sperre des Streams synchron freigibt.
{
using disposer = new DisposableStack();
const reader = disposer.use(stream.getReader());
const { value, done } = reader.read();
if (!done) {
// Process the value
}
// The reader.releaseLock() method is called here before exiting
}
Spezifikationen Browser-Kompatibilität Siehe auch
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4