RxJS - Operatori

Gli operatori sono una parte importante di RxJS. Un operatore è una funzione pura che accetta l'osservabile come input e anche l'output è osservabile.

Lavorare con gli operatori

Un operatore è una funzione pura che accetta osservabile come input e anche l'output è osservabile.

Per lavorare con gli operatori abbiamo bisogno di un metodo pipe ().

Esempio di utilizzo di pipe ()

let obs = of(1,2,3); // an observable
obs.pipe(
   operator1(),
   operator2(),
   operator3(),
   operator3(),
)

Nell'esempio sopra abbiamo creato un osservabile utilizzando of()metodo che assume i valori 1, 2 e 3. Ora su questo osservabile è possibile eseguire operazioni diverse utilizzando un numero qualsiasi di operatori utilizzando il metodo pipe () come mostrato sopra. L'esecuzione degli operatori proseguirà sequenzialmente sull'osservabile dato.

Di seguito è riportato un esempio funzionante:

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));

Produzione

30

Nell'esempio sopra, abbiamo usato l'operatore di filtro che, filtra i numeri pari e, successivamente, abbiamo usato reduce() operatore che aggiungerà i valori pari e darà il risultato quando sottoscritto.

Ecco un elenco di osservabili di cui discuteremo.

  • Creation
  • Mathematical
  • Join
  • Transformation
  • Filtering
  • Utility
  • Conditional
  • Multicasting
  • Gestione degli errori

Operatori di creazione

Di seguito sono riportati gli operatori di cui discuteremo nella categoria Operatore di creazione:

Suor n Operatore e descrizione
1 ajax

Questo operatore effettuerà una richiesta ajax per l'URL fornito.

2 a partire dal

Questo operatore creerà un oggetto osservabile da un array, un oggetto simile a un array, una promessa, un oggetto iterabile o un oggetto osservabile.

3 fromEvent

Questo operatore fornirà l'output come osservabile da utilizzare su elementi che emettono un evento, ad esempio pulsanti, clic, ecc.

4 fromEventPattern

Questo operatore creerà un osservabile dalla funzione di input che viene utilizzata per registrare i gestori di eventi.

5 intervallo

Questo operatore creerà un osservabile per ogni volta per il tempo dato ..

6 di

Questo operatore prenderà gli argomenti passati e li convertirà in osservabili.

7 gamma

Questo operatore creerà un osservabile che ti darà una sequenza di numeri basata sull'intervallo fornito.

8 throwError

Questo operatore creerà un osservabile che notificherà un errore.

9 Timer

Questo operatore creerà un osservabile che emetterà il valore dopo il timeout e il valore continuerà ad aumentare dopo ogni chiamata.

10 iif

Questo operatore deciderà quale Observable sarà sottoscritto.

Operatori matematici

I seguenti sono gli operatori di cui discuteremo nella categoria Operatore matematico:

Suor n Operatore e descrizione
1 Contare

L'operatore count () accetta un Observable con valori e lo converte in un Observable che darà un singolo valore

2 Max

Il metodo Max accetterà un'osservabile con tutti i valori e restituirà un'osservabile con il valore massimo

3 Min

Il metodo Min accetterà un'osservabile con tutti i valori e restituirà un'osservabile con il valore minimo.

4 Ridurre

Nell'operatore di riduzione, la funzione accumulatore viene utilizzata sull'input osservabile e la funzione accumulatore restituirà il valore accumulato sotto forma di osservabile, con un valore seme opzionale passato alla funzione accumulatore.

La funzione reduce () prenderà 2 argomenti, una funzione accumulatore e la seconda il valore seed.

Unisciti agli operatori

Di seguito sono riportati gli operatori di cui discuteremo nella categoria Operatore di join.

Suor n Operatore e descrizione
1 concat

Questo operatore emetterà in sequenza l'Osservabile fornito come input e procederà a quello successivo.

2 forkJoin

Questo operatore verrà preso in un oggetto array o dict come input e attenderà il completamento dell'osservabile e restituirà gli ultimi valori emessi dall'osservabile dato.

3 unire

Questo operatore prenderà l'input osservabile ed emetterà tutti i valori dall'osservabile ed emetterà un singolo output osservabile.

4 gara

Restituirà un osservabile che sarà una copia speculare della prima fonte osservabile.

Operatori di trasformazione

I seguenti sono gli operatori di cui parleremo nella categoria Operatore di trasformazione.

Suor n Operatore e descrizione
1 buffer

Il buffer opera su un osservabile e accetta l'argomento come osservabile. Inizierà a bufferizzare i valori emessi sul suo osservabile originale in un array e emetterà lo stesso quando viene emesso l'osservabile preso come argomento. Una volta emesso l'osservabile preso come argomento, il buffer viene reimpostato e ricomincia il buffering sull'originale fino a quando l'input osservabile non viene emesso e lo stesso scenario si ripete.

2 bufferCount

Nel caso dell'operatore buffercount (), raccoglierà i valori dall'osservabile su cui è chiamato ed emetterà lo stesso quando la dimensione del buffer data a buffercount corrisponde.

3 bufferTime

Questo è simile a bufferCount, quindi qui raccoglierà i valori dall'osservabile su cui è chiamato ed emetterà il bufferTimeSpan. Accetta 1 argomento, ovvero bufferTimeSpan .

4 bufferToggle

Nel caso di bufferToggle () richiede 2 argomenti, openings e closingSelector. Gli argomenti di apertura sono sottoscrivibili o una promessa di avviare il buffer e il secondo argomento closingSelector è di nuovo sottoscrivibile o promette un indicatore per chiudere il buffer ed emettere i valori raccolti.

5 bufferWhen

Questo operatore fornirà i valori in forma di matrice, accetta un argomento come funzione che deciderà quando chiudere, emettere e resettare il buffer.

6 espandere

L'operatore di espansione assume una funzione come argomento che viene applicato sulla sorgente osservabile ricorsivamente e anche sull'output osservabile. Il valore finale è un osservabile.

7 raggruppa per

Nell'operatore groupBy, l'output viene raggruppato in base a una condizione specifica e questi elementi del gruppo vengono emessi come GroupedObservable.

8 carta geografica

Nel caso dell'operatore mappa, una funzione di progetto viene applicata su ogni valore della sorgente Observable e lo stesso output viene emesso come Observable.

9 mapTo

Viene fornito un valore costante come output insieme a Observable ogni volta che la sorgente Observable emette un valore.

10 mergeMap

Nel caso dell'operatore mergeMap, una funzione di progetto viene applicata a ciascun valore sorgente e il suo output viene unito all'output Observable.

11 switchMap

Nel caso dell'operatore switchMap, una funzione di progetto viene applicata a ciascun valore sorgente e il suo output viene unito all'output Observable, e il valore fornito è il più recente Observable proiettato.

12 finestra

Accetta un argomento windowboundaries che è un osservabile e restituisce un osservabile annidato ogni volta che il dato windowboundaries emette

Operatori di filtraggio

I seguenti sono gli operatori che discuteremo nella categoria degli operatori di filtraggio.

Suor n Operatore e descrizione
1 antirimbalzo

Un valore emesso dalla sorgente Observable dopo un po 'e l'emissione è determinata da un altro input dato come Observable o promise.

2 debounceTime

Emetterà valore dalla sorgente osservabile solo dopo che il tempo è completo.

3 distinto

Questo operatore fornirà tutti i valori dalla sorgente osservabile che sono distinti se confrontati con il valore precedente.

4 elementAt

Questo operatore darà un singolo valore dalla sorgente osservabile in base all'indice fornito.

5 filtro

Questo operatore filtrerà i valori dalla sorgente Observable in base alla funzione del predicato fornita.

6 primo

Questo operatore darà il primo valore emesso dalla sorgente Observable.

7 scorso

Questo operatore darà l'ultimo valore emesso dalla sorgente Observable.

8 ignoreElements

Questo operatore ignorerà tutti i valori dall'Osservabile sorgente ed eseguirà solo chiamate per completare o generare errori nelle funzioni di callback.

9 campione

Questo operatore fornirà il valore più recente dalla fonte Observable e l'output dipenderà dall'argomento passato emesso.

10 Salta

Questo operatore restituirà un osservabile che salterà la prima occorrenza degli elementi di conteggio presi come input.

11 acceleratore

Questo operatore produrrà così come ignorerà i valori osservabili dalla sorgente per il tempo determinato dalla funzione di input presa come argomento e lo stesso processo verrà ripetuto.

Operatori di servizi

I seguenti sono gli operatori di cui parleremo nella categoria degli operatori di servizi.

Suor n Operatore e descrizione
1 rubinetto

Questo operatore avrà l'output, lo stesso dell'origine osservabile, e può essere utilizzato per registrare i valori per l'utente dall'osservabile. Il valore principale, l'errore se presente o se l'attività è completa.

2 ritardo

Questo operatore ritarda i valori emessi dalla sorgente Observable in base al timeout fornito.

3 delayWhen

Questo operatore ritarda i valori emessi dalla sorgente Observable in base al timeout di un altro osservabile preso come input.

4 osservareOn

Questo operatore basato sullo scheduler di input riemetterà le notifiche dalla fonte Observable.

5 iscriviti

Questo operatore aiuta a sottoscrizioni asincrone alla sorgente Observable in base allo scheduler preso come input.

6 Intervallo di tempo

Questo operatore restituirà un oggetto che contiene il valore corrente e il tempo trascorso tra il valore corrente e quello precedente calcolato utilizzando l'input dello scheduler preso.

7 timestamp

Restituisce il timestamp insieme al valore emesso dalla sorgente Observable che indica l'ora in cui il valore è stato emesso.

8 tempo scaduto

Questo operatore genererà un errore se la fonte Observable non emette un valore dopo il timeout specificato.

9 toArray

Accumula tutto il valore di origine dall'Osservabile e li restituisce come un array quando l'origine è completata.

Operatori condizionali

I seguenti sono gli operatori di cui parleremo nella categoria degli operatori condizionali.

Suor n Operatore e descrizione
1 defaultIfEmpty

Questo operatore restituirà un valore predefinito se l'osservabile di origine è vuoto.

2 ogni

Restituirà un osservabile basato sulla funzione di input che soddisfa la condizione su ciascuno dei valori osservabili sulla sorgente.

3 trova

Questo restituirà l'osservabile quando il primo valore della sorgente Observable soddisfa la condizione per la funzione predicativa presa come input.

4 findIndex

Questo operatore basato sullo scheduler di input riemetterà le notifiche dalla fonte Observable.

5 è vuoto

Questo operatore darà l'output come vero se l'input osservabile va per il callback completo senza emettere alcun valore e falso se l'input osservabile emette alcun valore.

Operatori multicasting

I seguenti sono gli operatori di cui parleremo nella categoria degli operatori multicasting.

Suor n Operatore e descrizione
1 multicast

Un operatore multicast condivide il singolo abbonamento creato con altri abbonati. Il parametro che multicast accetta, è un soggetto o un metodo di fabbrica che restituisce un ConnectableObservable che ha il metodo connect (). Per iscriversi, è necessario chiamare il metodo connect ().

2 pubblicare

Questo operatore restituisce ConnectableObservable e deve utilizzare il metodo connect () per iscriversi agli osservabili.

3 publishBehavior

publishBehaviour fa uso di BehaviourSubject e restituisce ConnectableObservable. Il metodo connect () deve essere utilizzato per iscriversi all'osservabile creato.

4 publishLast

publishBehaviour fa uso di AsyncSubject e restituisce ConnectableObservable. Il metodo connect () deve essere utilizzato per iscriversi all'osservabile creato.

5 publishReplay

publishReplay fa uso di un comportamento soggetto in cui può memorizzare i valori e riprodurre gli stessi ai nuovi abbonati e restituisce ConnectableObservable. Il metodo connect () deve essere utilizzato per iscriversi all'osservabile creato.

6 Condividere

È un alias per l'operatore mutlicast () con l'unica differenza è che non è necessario chiamare manualmente il metodo connect () per avviare l'abbonamento.

Operatori di gestione degli errori

I seguenti sono gli operatori che discuteremo nella categoria degli operatori di gestione degli errori.

Suor n Operatore e descrizione
1 catchError

Questo operatore si occupa di rilevare gli errori sull'Osservabile di origine restituendo un nuovo Osservabile o un errore.

2 riprova

Questo operatore si occuperà di riprovare sull'Osservabile sorgente in caso di errore e il nuovo tentativo verrà eseguito in base al numero di input fornito.