A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/DisposableStack/adopt below:

DisposableStack.prototype.adopt() - JavaScript | MDN

DisposableStack.prototype.adopt()

Die adopt() Methode von DisposableStack Instanzen registriert einen Wert, der das disposable Protokoll nicht implementiert, auf dem Stack, indem eine benutzerdefinierte Dispose-Funktion bereitgestellt wird.

Syntax Parameter
value

Beliebiger Wert, der auf dem Stack registriert werden soll.

onDispose

Eine Funktion, die aufgerufen wird, wenn der Stack entsorgt wird. Die Funktion erhält value als einziges Argument.

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 ist.

Beschreibung

Der Hauptzweck von adopt() ist es, einen Wert zu registrieren, der das disposable Protokoll nicht implementiert. Wenn der Wert bereits disposable ist, können Sie stattdessen use() verwenden, welches automatisch die [Symbol.dispose]() Methode des Wertes als Disposer nutzt.

adopt(value, onDispose) ist fast das gleiche wie defer(() => onDispose(value)), aber es ermöglicht Ihnen, die Ressource zu deklarieren und auf derselben Zeile zu registrieren. Auf diese Weise gibt es minimalen Spielraum für Fehler zwischen der Erstellung und Registrierung der Ressource, was dazu führen könnte, dass die Ressource verloren geht.

using disposer = new DisposableStack();
const reader = disposer.adopt(stream.getReader(), (reader) =>
  reader.releaseLock(),
);
using disposer = new DisposableStack();
const reader = stream.getReader();
// If someone adds code in between these lines and an error occurs,
// the stream will be locked forever.
disposer.defer(() => reader.close());

Im gleichen Sinne des "Registrieren Sie Ihre Ressource, sobald sie deklariert ist", sollten Sie immer Ihren Ressourcenerwerbsausdruck in adopt() einwickeln, anstatt ihn in eine separate Anweisung auszulagern.

using disposer = new DisposableStack();
const reader = stream.getReader();
disposer.adopt(reader, (reader) => reader.close());
Beispiele Nutzung von adopt()

Dieses Codebeispiel konsumiert einen ReadableStream über einen ReadableStreamDefaultReader. Der Reader implementiert das disposable Protokoll nicht, daher nutzen wir adopt(), um ihn auf dem Stack zu registrieren.

{
  using disposer = new DisposableStack();
  const reader = disposer.adopt(stream.getReader(), (reader) =>
    reader.releaseLock(),
  );
  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