Verständnis der Operatoren
RxJS-Operatoren sind eine Gruppe von Funktionen zur Transformation, Komposition und Steuerung von Observable-Datenströmen.
Operatoren werden normalerweise in Kombination verwendet, und dabei kommt die "Pipeline" ins Spiel.
In RxJS werden Operatoren in die folgenden Kategorien eingeteilt.
Kategorieübersicht
- Transformationsoperatoren
- Filterungsoperatoren
- Kombinationsoperatoren
- Utility-Operatoren
- Konditionaloperatoren
- Fehlerbehandlungsoperatoren
- Multicasting-Operatoren
Jede Kategorie enthält viele nützliche Operatoren. Details finden Sie in den jeweiligen Kategorien.
Operatorentabelle
Detaillierte Erklärungen zu jedem Operator finden Sie durch Klicken auf die Links.
| Kategorie | Operator | Beschreibung |
|---|---|---|
| Transformation | map | Transformiert jeden Wert |
| scan | Akkumuliert Werte und gibt auch Zwischenergebnisse aus | |
| reduce | Akkumuliert alle Werte und gibt nur das Endergebnis aus | |
| pairwise | Verarbeitet zwei aufeinanderfolgende Werte als Paar | |
| groupBy | Gruppiert Streams nach Schlüsseln | |
| mergeMap | Führt asynchrone Verarbeitung parallel aus | |
| switchMap | Führt nur die neueste asynchrone Verarbeitung aus (alte Verarbeitung wird abgebrochen) | |
| concatMap | Führt asynchrone Verarbeitung sequenziell aus | |
| exhaustMap | Ignoriert neue Verarbeitung während der Ausführung | |
| expand | Erweitert Ergebnisse rekursiv | |
| buffer | Sammelt Werte in einem Array und gibt sie aus | |
| bufferTime | Sammelt Werte in festgelegten Zeitintervallen | |
| bufferCount | Sammelt Werte in festgelegten Anzahlen | |
| bufferWhen | Buffering mit dynamischer Kontrolle der Endbedingung | |
| bufferToggle | Buffering mit unabhängiger Steuerung von Start und Ende | |
| Filterung | filter | Lässt nur Werte durch, die eine Bedingung erfüllen |
| take | Nimmt nur die ersten N Werte | |
| takeLast | Nimmt die letzten N Werte | |
| takeWhile | Nimmt Werte, solange eine Bedingung erfüllt ist | |
| skip | Überspringt die ersten N Werte | |
| skipLast | Überspringt die letzten N Werte | |
| skipWhile | Überspringt Werte, solange eine Bedingung erfüllt ist | |
| skipUntil | Überspringt Werte, bis ein anderes Observable auslöst | |
| first | Nimmt den ersten Wert oder den ersten Wert, der eine Bedingung erfüllt | |
| last | Nimmt den letzten Wert oder den letzten Wert, der eine Bedingung erfüllt | |
| elementAt | Nimmt den Wert am angegebenen Index | |
| find | Findet den ersten Wert, der eine Bedingung erfüllt | |
| findIndex | Gibt den Index des ersten Werts zurück, der eine Bedingung erfüllt | |
| debounceTime | Gibt den letzten Wert aus, wenn für eine bestimmte Zeit keine Eingabe erfolgt | |
| throttleTime | Lässt den ersten Wert durch, ignoriert neue Werte für eine bestimmte Zeit | |
| auditTime | Gibt den letzten Wert nach einer bestimmten Zeit aus | |
| audit | Steuert Zeitraum mit benutzerdefiniertem Observable und gibt letzten Wert aus | |
| sampleTime | Sampelt den neuesten Wert in festgelegten Zeitintervallen | |
| ignoreElements | Ignoriert alle Werte, lässt nur Complete/Error durch | |
| distinct | Entfernt alle doppelten Werte (nur eindeutige Werte werden ausgegeben) | |
| distinctUntilChanged | Entfernt aufeinanderfolgende doppelte Werte | |
| distinctUntilKeyChanged | Erkennt nur Änderungen einer bestimmten Objekteigenschaft | |
| Kombination (Pipeable) | concatWith | Kombiniert andere Observables nacheinander nach Abschluss |
| mergeWith | Kombiniert mehrere Observables gleichzeitig | |
| combineLatestWith | Kombiniert die neuesten Werte jedes Observables | |
| zipWith | Paart Werte in entsprechender Reihenfolge | |
| raceWith | Verwendet nur das zuerst auslösende Observable | |
| withLatestFrom | Fügt andere neueste Werte zum Hauptstream hinzu | |
| mergeAll | Flacht Higher-order Observable parallel ab | |
| concatAll | Flacht Higher-order Observable sequenziell ab | |
| switchAll | Wechselt zum neuesten Higher-order Observable | |
| exhaustAll | Ignoriert neue Higher-order Observables während der Ausführung | |
| combineLatestAll | Kombiniert die neuesten Werte aller inneren Observables | |
| zipAll | Paart entsprechende Werte jedes inneren Observables | |
| Utility | tap | Führt Seiteneffekte aus (z.B. Log-Ausgabe) |
| finalize | Führt Nachverarbeitung bei Complete oder Error aus | |
| delay | Verzögert alle Werte um eine bestimmte Zeit | |
| delayWhen | Verzögert jeden Wert dynamisch mit einem anderen Observable | |
| timeout | Gibt einen Fehler aus, wenn innerhalb einer bestimmten Zeit kein Wert kommt | |
| takeUntil | Nimmt Werte, bis ein anderes Observable einen Wert ausgibt | |
| retry | Wiederholt bei Fehler bis zu einer bestimmten Anzahl | |
| repeat | Wiederholt nach Abschluss eine bestimmte Anzahl von Malen | |
| startWith | Fügt am Anfang des Streams einen Anfangswert hinzu | |
| toArray | Sammelt alle Werte in einem Array und gibt sie aus | |
| materialize | Konvertiert Benachrichtigungen in Notification-Objekte | |
| dematerialize | Konvertiert Notification-Objekte zurück in normale Benachrichtigungen | |
| observeOn | Steuert das Timing der Werteausgabe mit einem Scheduler | |
| subscribeOn | Steuert das Timing des Subscription-Starts mit einem Scheduler | |
| timestamp | Fügt jedem Wert einen Zeitstempel hinzu | |
| Konditional | defaultIfEmpty | Gibt einen Standardwert aus, wenn keine Werte vorhanden sind |
| every | Prüft, ob alle Werte eine Bedingung erfüllen | |
| isEmpty | Prüft, ob keine Werte ausgegeben wurden | |
| Fehlerbehandlung | catchError | Fängt Fehler ab und führt Fallback-Verarbeitung aus |
| retry | Wiederholt bei Fehler bis zu einer bestimmten Anzahl | |
| retryWhen | Wiederholt mit benutzerdefinierten Bedingungen | |
| Multicast | share | Teilt ein Observable zwischen mehreren Subscribern |
| shareReplay | Cached die neuesten N Werte und spielt sie für neue Subscriber ab |