RxJS - Operatoren
Operatoren sind ein wichtiger Bestandteil von RxJS. Ein Operator ist eine reine Funktion, die Observable als Eingabe aufnimmt, und die Ausgabe ist auch Observable.
Arbeiten mit Operatoren
Ein Operator ist eine reine Funktion, die Observable als Eingabe aufnimmt, und die Ausgabe ist auch Observable.
Um mit Operatoren arbeiten zu können, benötigen wir eine pipe () -Methode.
Beispiel für die Verwendung von pipe ()
let obs = of(1,2,3); // an observable
obs.pipe(
operator1(),
operator2(),
operator3(),
operator3(),
)
Im obigen Beispiel haben wir eine beobachtbare Verwendung erstellt of()Methode, die die Werte 1, 2 und 3 annimmt. Auf diesem Observable können Sie nun verschiedene Operationen mit einer beliebigen Anzahl von Operatoren ausführen, indem Sie die Methode pipe () verwenden, wie oben gezeigt. Die Ausführung der Operatoren erfolgt nacheinander auf der angegebenen beobachtbaren Stelle.
Unten ist ein Arbeitsbeispiel -
import { of } from 'rxjs';
import { map, reduce, filter } from 'rxjs/operators';
let test1 = of(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
let case1 = test1.pipe(
filter(x => x % 2 === 0),
reduce((acc, one) => acc + one, 0)
)
case1.subscribe(x => console.log(x));
Ausgabe
30
Im obigen Beispiel haben wir einen Filteroperator verwendet, der die geraden Zahlen filtert und als nächstes verwendet reduce() Operator, der die geraden Werte addiert und das Ergebnis beim Abonnieren angibt.
Hier ist eine Liste von Observables, die wir diskutieren werden.
- Creation
- Mathematical
- Join
- Transformation
- Filtering
- Utility
- Conditional
- Multicasting
- Fehlerbehandlung
Erstellungsoperatoren
Im Folgenden sind die Operatoren aufgeführt, die in der Kategorie "Erstellungsoperator" erläutert werden.
Sr.Nr. | Betreiber & Beschreibung |
---|---|
1 | Ajax Dieser Operator stellt eine Ajax-Anfrage für die angegebene URL. |
2 | von Dieser Operator erstellt ein Observable aus einem Array, einem Array-ähnlichen Objekt, einem Versprechen, einem iterierbaren Objekt oder einem Observable-ähnlichen Objekt. |
3 | fromEvent Dieser Operator gibt eine Ausgabe als Observable aus, die für Elemente verwendet werden soll, die ein Ereignis auslösen, z. B. Schaltflächen, Klicks usw. |
4 | fromEventPattern Dieser Operator erstellt aus der Eingabefunktion eine Observable, mit der Ereignishandler registriert werden. |
5 | Intervall Dieser Operator erstellt für jedes Mal ein Observable für die angegebene Zeit. |
6 | von Dieser Operator nimmt die übergebenen Argumente auf und konvertiert sie in Observable. |
7 | Angebot Dieser Operator erstellt ein Observable, das Ihnen eine Folge von Zahlen basierend auf dem angegebenen Bereich gibt. |
8 | throwError Dieser Operator erstellt eine Observable, die einen Fehler meldet. |
9 | Timer Dieser Operator erstellt eine Observable, die den Wert nach dem Timeout ausgibt und nach jedem Aufruf weiter ansteigt. |
10 | iif Dieser Betreiber entscheidet, welches Observable abonniert wird. |
Mathematische Operatoren
Das Folgende sind die Operatoren, die wir in der Kategorie Mathematische Operatoren diskutieren werden -
Sr.Nr. | Betreiber & Beschreibung |
---|---|
1 | Anzahl Der Operator count () nimmt eine Observable mit Werten auf und konvertiert sie in eine Observable, die einen einzelnen Wert ergibt |
2 | Max Die Max-Methode nimmt eine Observable mit allen Werten auf und gibt eine Observable mit dem Max-Wert zurück |
3 | Mindest Die Min-Methode nimmt eine Observable mit allen Werten auf und gibt eine Observable mit dem Min-Wert zurück. |
4 | Reduzieren Beim Reduzieren des Operators wird die Akkumulatorfunktion für die beobachtbare Eingabe verwendet, und die Akkumulatorfunktion gibt den akkumulierten Wert in Form einer beobachtbaren Funktion zurück, wobei ein optionaler Startwert an die Akkumulatorfunktion übergeben wird. Die Funktion redu () akzeptiert 2 Argumente, eine Akkumulatorfunktion und den zweiten den Startwert. |
Operatoren beitreten
Im Folgenden sind die Operatoren aufgeführt, die in der Kategorie Join-Operatoren behandelt werden.
Sr.Nr. | Betreiber & Beschreibung |
---|---|
1 | concat Dieser Operator gibt nacheinander das als Eingabe angegebene Observable aus und fährt mit dem nächsten fort. |
2 | ForkJoin Dieser Operator wird in einem Array oder Diktierobjekt als Eingabe verwendet und wartet, bis die Observable abgeschlossen ist, und gibt die letzten von der angegebenen Observable ausgegebenen Werte zurück. |
3 | verschmelzen Dieser Operator nimmt die beobachtbare Eingabe auf und gibt alle Werte aus der beobachtbaren und eine einzige beobachtbare Ausgabe aus. |
4 | Rennen Es wird ein Observable zurückgegeben, das eine Spiegelkopie der ersten beobachtbaren Quelle ist. |
Transformationsoperatoren
Im Folgenden sind die Operatoren aufgeführt, die in der Kategorie Transformationsoperatoren behandelt werden.
Sr.Nr. | Betreiber & Beschreibung |
---|---|
1 | Puffer Der Puffer arbeitet mit einem Observable und nimmt das Argument als Observable auf. Es beginnt mit dem Puffern der Werte, die auf seinem ursprünglichen Observable in einem Array ausgegeben werden, und gibt dasselbe aus, wenn das als Argument genommene Observable ausgegeben wird. Sobald das als Argumente verwendete Observable ausgegeben wird, wird der Puffer zurückgesetzt und beginnt erneut mit dem Puffern auf dem Original, bis das eingegebene Observable ausgegeben wird und dasselbe Szenario wiederholt wird. |
2 | bufferCount Im Fall des Operators buffercount () sammelt er die Werte aus dem Observable, auf dem er aufgerufen wird, und gibt dieselben aus, wenn die Puffergröße für buffercount übereinstimmt. |
3 | bufferTime Dies ist ähnlich wie bei bufferCount, daher werden hier die Werte aus dem Observable gesammelt, auf dem es aufgerufen wird, und der BufferTimeSpan wird ausgegeben. Es nimmt 1 Argument an, dh bufferTimeSpan . |
4 | bufferToggle Im Fall von bufferToggle () werden 2 Argumente benötigt, openings und closeSelector. Die Eröffnungsargumente sind abonnierbar oder versprechen, den Puffer zu starten, und das zweite Argument schließtSelector ist wieder abonnierbar oder verspricht einen Indikator zum Schließen des Puffers und zum Ausgeben der gesammelten Werte. |
5 | bufferWhen Dieser Operator gibt die Werte in der Array-Form an. Er verwendet ein Argument als Funktion, die entscheidet, wann der Puffer geschlossen, ausgegeben und zurückgesetzt werden soll. |
6 | erweitern Der Operator expand nimmt eine Funktion als Argument auf, die rekursiv auf die beobachtbare Quelle und auch auf die beobachtbare Ausgabe angewendet wird. Der Endwert ist ein beobachtbarer Wert. |
7 | gruppiere nach Im groupBy-Operator wird die Ausgabe basierend auf einer bestimmten Bedingung gruppiert und diese Gruppenelemente werden als GroupedObservable ausgegeben. |
8 | Karte Im Fall eines Kartenoperators wird eine Projektfunktion auf jeden Wert in der Quelle Observable angewendet und dieselbe Ausgabe wird als Observable ausgegeben. |
9 | Karte zu Jedes Mal, wenn die Quelle Observable einen Wert ausgibt, wird zusammen mit dem Observable ein konstanter Wert als Ausgabe angegeben. |
10 | mergeMap Im Fall des Operators mergeMap wird auf jeden Quellwert eine Projektfunktion angewendet und die Ausgabe davon mit der Ausgabe Observable zusammengeführt. |
11 | switchMap Im Fall des switchMap-Operators wird auf jeden Quellwert eine Projektfunktion angewendet, und die Ausgabe davon wird mit der Ausgabe Observable zusammengeführt, und der angegebene Wert ist der zuletzt projizierte Observable. |
12 | Fenster Es wird ein Argument für Fenstergrenzen verwendet, das beobachtbar ist, und es wird ein verschachteltes beobachtbares Element zurückgegeben, wenn die angegebenen Fenstergrenzen ausgegeben werden |
Filteroperatoren
Im Folgenden sind die Operatoren aufgeführt, die in der Kategorie der Filteroperatoren erläutert werden.
Sr.Nr. | Betreiber & Beschreibung |
---|---|
1 | entprellen Ein Wert, der nach einer Weile von der beobachtbaren Quelle abgegeben wird, und die Emission wird durch eine andere Eingabe bestimmt, die als beobachtbar oder versprochen angegeben wird. |
2 | debounceTime Es wird einen Wert von der Quelle ausgeben, der erst nach Ablauf der Zeit beobachtet werden kann. |
3 | deutlich Dieser Operator gibt alle Werte aus der beobachtbaren Quelle an, die sich im Vergleich zum vorherigen Wert unterscheiden. |
4 | elementAt Dieser Operator gibt einen einzelnen Wert aus der beobachtbaren Quelle basierend auf dem angegebenen Index an. |
5 | Filter Dieser Operator filtert die Werte aus der Quelle Observable basierend auf der angegebenen Prädikatfunktion. |
6 | zuerst Dieser Operator gibt den ersten Wert an, der von der Quelle Observable ausgegeben wird. |
7 | zuletzt Dieser Operator gibt den letzten von der Quelle Observable ausgegebenen Wert an. |
8 | ignoreElements Dieser Operator ignoriert alle Werte aus der Quelle Observable und führt nur Aufrufe aus, um Rückruffunktionen abzuschließen oder Fehler zu machen. |
9 | Stichprobe Dieser Operator gibt den neuesten Wert aus der Quelle Observable an, und die Ausgabe hängt von dem Argument ab, das an ihn ausgegeben wird. |
10 | überspringen Dieser Operator gibt ein Observable zurück, das das erste Auftreten von Zählelementen überspringt, die als Eingabe verwendet werden. |
11 | drosseln Dieser Operator gibt Werte aus der Quelle aus und ignoriert sie, die für die Zeit beobachtet werden können, die durch die als Argument verwendete Eingabefunktion bestimmt wird, und der gleiche Vorgang wird wiederholt. |
Versorgungsunternehmen
Im Folgenden sind die Operatoren aufgeführt, die in der Kategorie der Dienstprogrammbetreiber erläutert werden.
Sr.Nr. | Betreiber & Beschreibung |
---|---|
1 | Zapfhahn Dieser Operator hat die gleiche Ausgabe wie die beobachtbare Quelle und kann verwendet werden, um die Werte aus der beobachtbaren Datei an den Benutzer zu protokollieren. Der Hauptwert, Fehler, falls vorhanden oder wenn die Aufgabe abgeschlossen ist. |
2 | verzögern Dieser Operator verzögert die von der beobachtbaren Quelle ausgegebenen Werte basierend auf dem angegebenen Zeitlimit. |
3 | delayWhen Dieser Operator verzögert die von der Quelle Observable ausgegebenen Werte basierend auf dem Timeout einer anderen als Eingabe genommenen Observable. |
4 | beobachtenOn Dieser auf dem Eingabeplaner basierende Operator gibt die Benachrichtigungen von der Quelle Observable erneut aus. |
5 | subscribeOn Dieser Operator hilft beim asynchronen Abonnieren der Quelle Observable basierend auf dem als Eingabe verwendeten Scheduler. |
6 | Zeitintervall Dieser Operator gibt ein Objekt zurück, das den aktuellen Wert und die zwischen dem aktuellen und dem vorherigen Wert verstrichene Zeit enthält, die mithilfe der Scheduler-Eingabe berechnet wurden. |
7 | Zeitstempel Gibt den Zeitstempel zusammen mit dem von source Observable ausgegebenen Wert zurück, der den Zeitpunkt angibt, zu dem der Wert ausgegeben wurde. |
8 | Auszeit Dieser Operator gibt einen Fehler aus, wenn die Quelle Observable nach dem angegebenen Zeitlimit keinen Wert ausgibt. |
9 | toArray Sammelt den gesamten Quellwert aus dem Observable und gibt ihn nach Abschluss der Quelle als Array aus. |
Bedingte Operatoren
Das Folgende sind die Operatoren, die wir in der Kategorie der bedingten Operatoren diskutieren werden.
Sr.Nr. | Betreiber & Beschreibung |
---|---|
1 | defaultIfEmpty Dieser Operator gibt einen Standardwert zurück, wenn die beobachtbare Quelle leer ist. |
2 | jeder Es wird ein Observable zurückgegeben, das auf der Eingabefunktion basiert und die Bedingung für jeden Wert auf Source Observable erfüllt. |
3 | finden Dies gibt das Observable zurück, wenn der erste Wert des Source Observable die Bedingung für die als Eingabe verwendete Prädikatfunktion erfüllt. |
4 | findIndex Dieser auf dem Eingabeplaner basierende Operator gibt die Benachrichtigungen von der Quelle Observable erneut aus. |
5 | ist leer Dieser Operator gibt die Ausgabe als wahr aus, wenn die beobachtbare Eingabe einen vollständigen Rückruf ohne Ausgabe von Werten ermöglicht, und als falsch, wenn die beobachtbare Eingabe Werte ausgibt. |
Multicasting-Operatoren
Im Folgenden sind die Operatoren aufgeführt, die in der Kategorie der Multicasting-Operatoren erläutert werden.
Sr.Nr. | Betreiber & Beschreibung |
---|---|
1 | Multicast Ein Multicast-Betreiber teilt das erstellte Einzelabonnement mit anderen Abonnenten. Die Parameter, die Multicast übernimmt, sind ein Betreff oder eine Factory-Methode, die ein ConnectableObservable mit der connect () -Methode zurückgibt. Zum Abonnieren muss die Methode connect () aufgerufen werden. |
2 | veröffentlichen Dieser Operator gibt ConnectableObservable zurück und muss die Methode connect () verwenden, um die Observablen zu abonnieren. |
3 | PublishBehavior PublishBehaviour verwendet BehaviourSubject und gibt ConnectableObservable zurück. Die connect () -Methode muss verwendet werden, um das erstellte Observable zu abonnieren. |
4 | PublishLast PublishBehaviour verwendet AsyncSubject und gibt ConnectableObservable zurück. Die connect () -Methode muss verwendet werden, um das erstellte Observable zu abonnieren. |
5 | PublishReplay PublishReplay verwendet ein Verhaltensthema, bei dem die Werte gepuffert und den neuen Abonnenten wiedergegeben werden können und ConnectableObservable zurückgegeben wird. Die connect () -Methode muss verwendet werden, um das erstellte Observable zu abonnieren. |
6 | Aktie Es ist ein Alias für den Operator mutlicast (), mit dem einzigen Unterschied, dass Sie die Methode connect () nicht manuell aufrufen müssen, um das Abonnement zu starten. |
Fehlerbehandlungsoperatoren
Im Folgenden sind die Operatoren aufgeführt, die in der Kategorie der Fehlerbehandlungsoperatoren erläutert werden.
Sr.Nr. | Betreiber & Beschreibung |
---|---|
1 | catchError Dieser Operator sorgt dafür, dass Fehler in der Quelle Observable abgefangen werden, indem eine neue Observable oder ein Fehler zurückgegeben wird. |
2 | wiederholen Dieser Operator kümmert sich um einen erneuten Versuch an der Quelle. Beobachtbar, wenn ein Fehler vorliegt, und der erneute Versuch wird basierend auf der angegebenen Eingangsanzahl durchgeführt. |