Observable: Methode inspect()
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 inspect() der Schnittstelle Observable gibt ein neues Observable zurück, das das Quell-Observable widerspiegelt und Callback-Funktionen aufruft, um dessen Werte und den Lebenszyklus des Abonnements zu untersuchen.
Syntax
inspect()
inspect(inspector)
Parameter
inspectorOptional-
Ein Objekt, das eine oder mehrere der folgenden Callback-Funktionen enthält:
nextOptional-
Eine Funktion, die mit jedem Wert der Quelle aufgerufen wird, bevor dieser an die Beobachter weitergeleitet wird.
errorOptional-
Eine Funktion, die mit dem Fehler der Quelle aufgerufen wird, bevor dieser an die Beobachter weitergeleitet wird.
completeOptional-
Eine Funktion, die ohne Argumente aufgerufen wird, wenn die Quelle abgeschlossen ist, bevor der Abschluss an die Beobachter weitergeleitet wird.
subscribeOptional-
Eine Funktion, die ohne Argumente aufgerufen wird, wenn das Abonnement des zurückgegebenen Observables beginnt, bevor es das Quell-Observable abonniert.
abortOptional-
Eine Funktion, die mit dem Grund für den Abbruch aufgerufen wird, wenn sich alle Beobachter vom zurückgegebenen Observable abmelden. Sie wird nicht aufgerufen, wenn die Quelle abgeschlossen ist oder einen Fehler meldet.
Alternativ kann
inspectoreine Funktion sein. Dies entspricht der Übergabe eines Objekts, dessennext-Callback diese Funktion ist. Die Rückgabewerte aller Callback-Funktionen werden ignoriert.
Rückgabewert
Ein neues Observable. Wenn es abonniert wird, gibt es die Werte des Quell-Observables aus und leitet dessen Abschluss oder Fehler weiter. Vor jeder Weiterleitung ruft es die entsprechende Callback-Funktion von inspector auf.
Beschreibung
Wie andere Operatoren, die ein Observable zurückgeben, arbeitet diese Methode verzögert: Ihr Aufruf erstellt ein neues Observable, ohne das Quell-Observable zu abonnieren. Die Verarbeitung beginnt, wenn das zurückgegebene Observable abonniert wird.
Wenn eine der Callback-Funktionen subscribe, next, error oder complete eine Ausnahme auslöst, meldet das zurückgegebene Observable diese Ausnahme als Fehler. Eine von subscribe ausgelöste Ausnahme verhindert das Abonnement der Quelle. Eine von abort ausgelöste Ausnahme wird an das globale Objekt gemeldet.
Die Callback-Funktionen werden synchron ausgeführt. Auf zurückgegebene Promises wird nicht gewartet, und ihre Ablehnungen werden von inspect() nicht behandelt.
Beispiele
>inspect() verwenden
Dieses Beispiel zählt die ersten drei Klicks auf eine Schaltfläche. Die Callback-Funktionen von inspect() protokollieren den Beginn des Abonnements, jedes Ereignis vor der Aktualisierung des Zählers und den endgültigen Zählerstand beim Abschluss des Abonnements. Klicken Sie nach dem Ende des Streams auf „Restart“, um es erneut zu versuchen.
const btn = document.querySelector("button");
const para = document.querySelector("p");
let countValue = 0;
function increment() {
countValue++;
para.textContent = `Click count: ${countValue}`;
}
const restart = document.querySelector("#restart");
function start() {
restart.disabled = true;
countValue = 0;
para.textContent = "Click count: 0";
btn
.when("click")
.take(3)
.inspect({
subscribe() {
console.log(`Subscription started`);
},
next(e) {
console.log(`Count value before click: ${countValue}`);
console.log(`Event type: ${e.type}`);
},
complete() {
console.log(`Final count value: ${countValue}`);
},
})
.subscribe({
next: increment,
complete() {
para.textContent = `No more clicks!`;
restart.disabled = false;
},
});
}
restart.when("click").subscribe(start);
start();
Öffnen Sie die Konsole des Browsers und klicken Sie dreimal auf die Schaltfläche, um die protokollierten Benachrichtigungen zu sehen.
Spezifikationen
| Spezifikation |
|---|
| Observable> # dom-observable-inspect> |