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.