Symbol.dispose

Die Symbol.dispose statische Dateneigenschaft repräsentiert das wohlbekannte Symbol Symbol.dispose. Die using Deklaration sucht dieses Symbol im Variableninitialisierer für die Methode, die aufgerufen werden soll, wenn die Variable aus dem Bereich fällt.

Wert

Das wohlbekannte Symbol Symbol.dispose.

Eigenschaften von Symbol.dispose
Schreibbarnein
Aufzählbarnein
Konfigurierbarnein

Beschreibung

Ein Objekt ist entsorgbar, wenn es die Methode [Symbol.dispose]() besitzt. Es wird erwartet, dass die Methode folgende Semantik hat:

  • Der Aufruf dieser Methode benachrichtigt das entsorgbare Objekt darüber, dass der Aufrufer nicht beabsichtigt, dieses Objekt weiter zu verwenden. Diese Methode sollte jegliche notwendige Logik durchführen, um die Ressource explizit aufzuräumen, einschließlich, aber nicht beschränkt auf, Dateisystem-Handles, Streams, Host-Objekte usw.
  • Wenn eine Ausnahme von dieser Methode geworfen wird, bedeutet das normalerweise, dass die Ressource nicht explizit freigegeben werden konnte.
  • Wenn die Methode mehr als einmal auf demselben Objekt aufgerufen wird, sollte die Funktion keine Ausnahme werfen. Diese Anforderung wird jedoch nicht erzwungen.

Diese Methode sollte kein Versprechen zurückgeben, da Versprechen, die von [Symbol.dispose]() zurückgegeben werden, nicht von await using erwartet werden. Um asynchrone Entsorgungen zu deklarieren, verwenden Sie Symbol.asyncDispose.

Beispiele

Benutzerdefinierte Entsorgbare

[Symbol.dispose] ermöglicht die Erstellung von benutzerdefinierten Entsorgbaren. Weitere Informationen finden Sie im using Verweis.

js
class Disposable {
  constructor() {
    this.disposed = false;
  }

  [Symbol.dispose]() {
    this.disposed = true;
  }

  get isDisposed() {
    return this.disposed;
  }
}

const resource = new Disposable();
{
  using resourceUsed = resource;
  console.log(resource.isDisposed); // false
}
console.log(resource.isDisposed); // true

Spezifikationen

No specification found

No specification data found for javascript.builtins.Symbol.dispose.
Check for problems with this page or contribute a missing spec_url to mdn/browser-compat-data. Also make sure the specification is included in w3c/browser-specs.

Browser-Kompatibilität

Siehe auch