| [ Web Proxy ] |
| Viewing: https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/DisposableStack | [Back] [Original] |
Get to know MDN better
Dieser Inhalt wurde automatisch aus dem Englischen bersetzt, und kann Fehler enthalten. Erfahre mehr ber dieses Experiment.
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.
Das DisposableStack-Objekt reprsentiert einen Stapel von Disposern, die ausgefhrt werden, wenn der Stapel selbst entsorgt wird. Disposer-Funktionen werden in umgekehrter Reihenfolge der Registrierung mit starken Fehlerbehandlungsgarantien ausgefhrt. Wenn Sie die move()-Methode aufrufen, wird die Verantwortung fr das Aufrufen der derzeit registrierten Disposer an einen neuen DisposableStack bertragen und die Registrierung weiterer Disposer verhindert.
Ein DisposableStack ist im Hinblick auf seine Schnittstelle nicht exakt ein "Stapel". Es gibt mehrere Methoden, um Disposer hinzuzufgen, aber es gibt keine Mglichkeit, einen einzelnen Disposer zu entfernen. Stattdessen werden alle Disposer entnommen und nacheinander ausgefhrt, wenn der Stapel entsorgt wird.
Sie registrieren verfgbare Ressourcen beim DisposableStack mit dessen Methoden use(), adopt() oder defer().
using disposer = new DisposableStack();
const reader = disposer.use(stream.getReader());
Wenn der Disposer dann aus dem Gltigkeitsbereich fllt, werden alle bei ihm registrierten Ressourcen in umgekehrter Reihenfolge der Registrierung entsorgt, es sei denn, sie wurden mit move() entfernt.
Es ist eine gute Praxis, den Ausdruck zur Ressourcenerfassung nicht in eine separate Anweisung auszulagern, egal wie lang der Ausdruck ist. Sie sollten den use()- oder adopt()-Aufruf immer um den Ressourcenerfassungsausdruck wickeln, um sicherzustellen, dass die Ressource sofort beim Stapel registriert wird.
using disposer = new DisposableStack();
const reader = stream.getReader();
disposer.use(reader);
Funktional sind diese beiden Code-Snippets gleichwertig. Das erste ist jedoch weniger fehleranfllig, da die Ressource in einer einzigen Zeile deklariert und registriert wird. Wenn jemand mehr Code zwischen die zweite und dritte Zeile des zweiten Snippets einfgt, knnte ein Fehler auftreten, der dazu fhrt, dass die Ressource austritt.
DisposableStack()Erzeugt ein neues DisposableStack-Objekt.
Diese Eigenschaften sind auf DisposableStack.prototype definiert und werden von allen DisposableStack-Instanzen gemeinsam genutzt.
DisposableStack.prototype.constructorDie Konstruktorfunktion, die das Instanzobjekt erstellt hat. Fr DisposableStack-Instanzen ist der Anfangswert der DisposableStack-Konstruktor.
DisposableStack.prototype.disposedSchreibgeschtzt. Gibt true zurck, wenn das DisposableStack entsorgt wurde, oder false, wenn nicht.
DisposableStack.prototype[Symbol.toStringTag]Der Anfangswert der [Symbol.toStringTag]-Eigenschaft ist der String "DisposableStack". Diese Eigenschaft wird in Object.prototype.toString() verwendet.
DisposableStack.prototype.adopt()Registriert einen Wert, der das Disposable-Protokoll nicht implementiert, beim Stapel, indem eine benutzerdefinierte Disposer-Funktion bereitgestellt wird.
DisposableStack.prototype.defer()Nimmt eine Callback-Funktion an, die aufgerufen wird, wenn der Stapel entsorgt wird.
DisposableStack.prototype.dispose()Entsorgt diesen Stapel, indem alle bei ihm registrierten Disposer in umgekehrter Reihenfolge der Registrierung aufgerufen werden.
DisposableStack.prototype.move()Erstellt eine neue DisposableStack-Instanz, die dieselben Disposer wie dieser Stapel enthlt, und markiert dann diesen Stapel als entsorgt, ohne Disposer aufzurufen.
DisposableStack.prototype.use()Registriert einen Wert, der das Disposable-Protokoll beim Stapel implementiert.
DisposableStack.prototype[Symbol.dispose]Ein Alias fr die dispose()-Methode.
| Spezifikation |
|---|
| ECMAScript Async Explicit Resource Management # sec-disposablestack-objects |
DisposableStack in core-jsSymbol.disposeusingAsyncDisposableStackDisposableStackObject/FunctionDer Bauplan fr ein besseres Internet.
Teile dieses Inhalts sind 19982026 von einzelnen mozilla.org-Mitwirkenden. Inhalte sind verfgbar unter einer Creative-Commons-Lizenz.
| Web Proxy Viewer | New URL | Original Page |