Subscriber: Methode addTeardown()
Eingeschränkt verfügbar
Diese Funktion ist nicht Baseline, da sie in einigen der am weitesten verbreiteten Browser nicht funktioniert.
Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig vor der Verwendung auf produktiven Webseiten.
Die Methode addTeardown() der Schnittstelle Subscriber registriert eine Callback-Funktion, die Ressourcen bereinigt, wenn die Subscription endet. Das geschieht, wenn entweder Subscriber.complete() oder Subscriber.error() aufgerufen wird oder wenn sich alle Observer abmelden.
Hinweis:
Dieses Verhalten bei gemeinsam genutzten Subscriptions kann sich ändern. Ein Vorschlag, jedem Observer einen eigenen Subscriber zu geben, würde dazu führen, dass jede Subscription eine separate Ausführung startet, statt eine aktive Subscription wiederzuverwenden.
Der Producer ruft diese Methode aus der Callback-Funktion auf, die dem Konstruktor Observable() übergeben wurde. Ein Aufruf von addTeardown() registriert die Bereinigungsfunktion; er beendet die Subscription nicht.
Syntax
addTeardown(callback)
Parameter
callback-
Eine Callback-Funktion, die keine Argumente entgegennimmt und ausgeführt wird, wenn die Subscription endet. Ihr Rückgabewert wird ignoriert; ein zurückgegebenes Promise wird daher nicht abgewartet.
Rückgabewert
Keiner (undefined).
Beschreibung
Callbacks, die registriert werden, während der Subscriber aktiv ist, werden synchron in umgekehrter Registrierungsreihenfolge ausgeführt, nachdem active den Wert false angenommen hat und signal abgebrochen wurde. Wenn der Producer complete() oder error() aufruft, werden die Bereinigungs-Callbacks vor den entsprechenden Observer-Callbacks ausgeführt.
Wenn der Subscriber beim Aufruf von addTeardown() bereits inaktiv ist, wird die übergebene Callback-Funktion sofort ausgeführt. Wenn ein Bereinigungs-Callback eine Ausnahme auslöst, wird diese an das globale Objekt gemeldet; die übrigen Bereinigungs-Callbacks werden trotzdem ausgeführt.
Beispiele
>Reihenfolge der Callbacks
Dieses Beispiel registriert zwei Bereinigungs-Callbacks vor dem Abschluss und einen danach. Die ersten beiden werden in umgekehrter Registrierungsreihenfolge vor dem complete()-Callback des Observers ausgeführt; der letzte wird sofort bei seiner Registrierung ausgeführt.
const observable = new Observable((subscriber) => {
subscriber.addTeardown(() => console.log("First registered"));
subscriber.addTeardown(() => console.log("Second registered"));
subscriber.complete();
subscriber.addTeardown(() => console.log("Registered after completion"));
});
observable.subscribe({
complete() {
console.log("Complete");
},
});
// Second registered
// First registered
// Complete
// Registered after completion
Ein grundlegendes Beispiel finden Sie auf der Hauptreferenzseite zu Subscriber. Weitere Beispiele finden Sie unter Benutzerdefinierte Observables erstellen.
Spezifikationen
| Spezifikation |
|---|
| Observable> # dom-subscriber-addteardown> |