RxJS - Operadores

Los operadores son una parte importante de RxJS. Un operador es una función pura que toma un observable como entrada y la salida también es un observable.

Trabajar con operadores

Un operador es una función pura que toma un observable como entrada y la salida también es un observable.

Para trabajar con operadores, necesitamos un método pipe ().

Ejemplo de uso de pipe ()

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

En el ejemplo anterior hemos creado un observable usando of()método que toma los valores 1, 2 y 3. Ahora, en este observable, puede realizar una operación diferente usando cualquier número de operadores usando el método pipe () como se muestra arriba. La ejecución de los operadores continuará secuencialmente sobre el dato observable.

A continuación se muestra un ejemplo de trabajo:

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

Salida

30

En el ejemplo anterior, hemos utilizado un operador de filtro que filtra los números pares y, a continuación, hemos utilizado reduce() operador que sumará los valores pares y dará el resultado cuando se suscriba.

Aquí hay una lista de Observables que vamos a discutir.

  • Creation
  • Mathematical
  • Join
  • Transformation
  • Filtering
  • Utility
  • Conditional
  • Multicasting
  • Manejo de errores

Operadores de creación

Los siguientes son los operadores que vamos a discutir en la categoría de operador de creación:

No Señor Operador y descripción
1 ajax

Este operador realizará una solicitud ajax para la URL dada.

2 desde

Este operador creará un observable a partir de una matriz, un objeto similar a una matriz, una promesa, un objeto iterable o un objeto similar a un observable.

3 fromEvent

Este operador dará salida como un observable que se utilizará en elementos que emiten un evento, por ejemplo botones, clics, etc.

4 fromEventPattern

Este operador creará un observable a partir de la función de entrada que se utiliza para registrar controladores de eventos.

5 intervalo

Este operador creará un Observable para cada vez durante el tiempo dado.

6 de

Este operador tomará los argumentos pasados ​​y los convertirá en observables.

7 rango

Este operador creará un Observable que le dará una secuencia de números basada en el rango proporcionado.

8 throwError

Este operador creará un observable que notificará un error.

9 Temporizador

Este operador creará un observable que emitirá el valor después del tiempo de espera y el valor seguirá aumentando después de cada llamada.

10 iif

Este operador decidirá qué Observable se suscribirá.

Operadores matemáticos

Los siguientes son los operadores que vamos a discutir en la categoría de Operador matemático:

No Señor Operador y descripción
1 Contar

El operador count () toma un Observable con valores y lo convierte en un Observable que dará un valor único

2 Max

El método Max tomará un observable con todos los valores y devolverá un observable con el valor máximo

3 Min

El método mínimo tomará un observable con todos los valores y devolverá un observable con el valor mínimo.

4 Reducir

En el operador de reducción, la función de acumulador se usa en la entrada observable, y la función de acumulador devolverá el valor acumulado en forma de observable, con un valor semilla opcional pasado a la función de acumulador.

La función reduce () tomará 2 argumentos, una función de acumulador y, en segundo lugar, el valor inicial.

Unirse a los operadores

Los siguientes son los operadores que vamos a discutir en la categoría de operador Join.

No Señor Operador y descripción
1 concat

Este operador emitirá secuencialmente el Observable dado como entrada y pasará al siguiente.

2 tenedor

Este operador se tomará en una matriz u objeto dictado como entrada y esperará a que el observable se complete y devuelva los últimos valores emitidos por el observable dado.

3 unir

Este operador tomará la entrada observable y emitirá todos los valores de la observable y emitirá una única salida observable.

4 raza

Devolverá un observable que será una copia en espejo de la primera fuente observable.

Operadores de transformación

Los siguientes son los operadores que vamos a discutir en la categoría de operador de transformación.

No Señor Operador y descripción
1 buffer

El búfer opera sobre un observable y toma un argumento como un observable. Comenzará a almacenar en búfer los valores emitidos en su observable original en una matriz y emitirá lo mismo cuando el observable tomado como argumento emite. Una vez que se emite el observable tomado como argumentos, el búfer se restablece y comienza a almacenar en búfer nuevamente en el original hasta que el observable de entrada emite y se repite el mismo escenario.

2 bufferCount

En el caso del operador buffercount (), recopilará los valores del observable en el que es llamado y emitirá los mismos cuando el tamaño de búfer dado a buffercount coincida.

3 tiempo de amortiguamiento

Esto es similar a bufferCount, por lo que aquí, recopilará los valores del observable en el que se llama y emitirá el bufferTimeSpan. Toma 1 argumento, es decir, bufferTimeSpan .

4 bufferToggle

En el caso de bufferToggle () toma 2 argumentos, openings y closedSelector. Los argumentos de apertura se pueden suscribir o una promesa de iniciar el búfer y el segundo argumento, closedSelector es nuevamente suscribible o promete un indicador para cerrar el búfer y emitir los valores recopilados.

5 bufferWhen

Este operador dará los valores en forma de matriz, toma un argumento como una función que decidirá cuándo cerrar, emitir y restablecer el búfer.

6 expandir

El operador expandir toma una función como argumento que se aplica a la fuente observable de forma recursiva y también a la salida observable. El valor final es un observable.

7 agrupar por

En el operador groupBy, la salida se agrupa en función de una condición específica y estos elementos de grupo se emiten como GroupedObservable.

8 mapa

En el caso del operador de mapa, se aplica una función de proyecto a cada valor de la fuente Observable y se emite la misma salida como Observable.

9 mapa para

Se da un valor constante como salida junto con el Observable cada vez que el Observable de la fuente emite un valor.

10 mergeMap

En el caso del operador mergeMap, se aplica una función de proyecto a cada valor de origen y su salida se fusiona con la salida Observable.

11 switchMap

En el caso del operador switchMap, se aplica una función de proyecto a cada valor de fuente y su salida se fusiona con la salida Observable, y el valor dado es el Observable proyectado más reciente.

12 ventana

Toma un argumento de los límites de la ventana que es un observable y devuelve un observable anidado cada vez que los límites de la ventana dados emiten

Operadores de filtrado

Los siguientes son los operadores que vamos a discutir en la categoría de operadores de filtrado.

No Señor Operador y descripción
1 rebote

Un valor emitido desde la fuente Observable después de un tiempo y la emisión está determinada por otra entrada dada como Observable o prometida.

2 debounceTime

Emitirá valor desde la fuente observable solo después de que se complete el tiempo.

3 distinto

Este operador dará todos los valores observables de la fuente que son distintos cuando se comparan con el valor anterior.

4 elementAt

Este operador dará un valor único de la fuente observable basado en el índice dado.

5 filtrar

Este operador filtrará los valores de la fuente Observable en función de la función de predicado dada.

6 primero

Este operador dará el primer valor emitido por la fuente Observable.

7 último

Este operador dará el último valor emitido por la fuente Observable.

8 ignoreElements

Este operador ignorará todos los valores de la fuente Observable y solo ejecutará llamadas para completar o error funciones de devolución de llamada.

9 muestra

Este operador dará el valor más reciente de la fuente Observable, y la salida dependerá del argumento que se le pase.

10 omitir

Este operador devolverá un observable que omitirá la primera aparición de elementos de recuento tomados como entrada.

11 acelerador

Este operador generará e ignorará valores de la fuente observables durante el tiempo determinado por la función de entrada tomada como argumento y se repetirá el mismo proceso.

Operadores de servicios públicos

Los siguientes son los operadores que vamos a discutir en la categoría de operador de servicios públicos.

No Señor Operador y descripción
1 grifo

Este operador tendrá la salida, la misma que la fuente observable, y se puede usar para registrar los valores para el usuario desde el observable. El valor principal, error si lo hay o si la tarea está completa.

2 retrasar

Este operador retrasa los valores emitidos desde la fuente Observable según el tiempo de espera dado.

3 retraso cuando

Este operador retrasa los valores emitidos desde la fuente Observable en función del tiempo de espera de otro observable tomado como entrada.

4 observar

Este operador basado en el programador de entrada reemitirá las notificaciones de la fuente Observable.

5 subscribeOn

Este operador ayuda a suscripciones asincrónicas a la fuente Observable en función del planificador tomado como entrada.

6 intervalo de tiempo

Este operador devolverá un objeto que contiene el valor actual y el tiempo transcurrido entre el valor actual y el anterior que se calcula utilizando la entrada del programador tomada.

7 marca de tiempo

Devuelve la marca de tiempo junto con el valor emitido desde la fuente Observable, que indica el momento en que se emitió el valor.

8 se acabó el tiempo

Este operador arrojará un error si la fuente Observable no emite un valor después del tiempo de espera dado.

9 toArray

Acumula todo el valor de la fuente del Observable y los genera como una matriz cuando se completa la fuente.

Operadores condicionales

Los siguientes son los operadores que vamos a discutir en la categoría de operador condicional.

No Señor Operador y descripción
1 defaultIfEmpty

Este operador devolverá un valor predeterminado si la fuente observable está vacía.

2 cada

Devolverá un Observable basado en la función de entrada que satisface la condición en cada uno de los valores en la fuente Observable.

3 encontrar

Esto devolverá el observable cuando el primer valor de la fuente Observable satisfaga la condición para la función de predicado tomada como entrada.

4 findIndex

Este operador basado en el programador de entrada reemitirá las notificaciones de la fuente Observable.

5 esta vacio

Este operador dará la salida como verdadera si la entrada observable va para una devolución de llamada completa sin emitir ningún valor y falsa si la entrada observable emite algún valor.

Operadores de multidifusión

Los siguientes son los operadores que vamos a discutir en la categoría de operador de multidifusión.

No Señor Operador y descripción
1 multidifusión

Un operador de multidifusión comparte la suscripción única creada con otros suscriptores. Los parámetros que toma la multidifusión son un sujeto o un método de fábrica que devuelve un ConnectableObservable que tiene el método connect (). Para suscribirse, se debe llamar al método connect ().

2 publicar

Este operador devuelve ConnectableObservable y necesita usar el método connect () para suscribirse a los observables.

3 publishBehavior

publishBehaviour hace uso de BehaviourSubject y devuelve ConnectableObservable. El método connect () debe usarse para suscribirse al observable creado.

4 PublishLast

publishBehaviour hace uso de AsyncSubject y devuelve ConnectableObservable. El método connect () debe usarse para suscribirse al observable creado.

5 PublishReplay

PublishReplay hace uso de un tema de comportamiento en el que puede almacenar los valores y reproducir los mismos para los nuevos suscriptores y devuelve ConnectableObservable. El método connect () debe usarse para suscribirse al observable creado.

6 compartir

Es un alias para el operador mutlicast () con la única diferencia es que no tiene que llamar al método connect () manualmente para iniciar la suscripción.

Operadores de manejo de errores

Los siguientes son los operadores que vamos a discutir en la categoría de operador de manejo de errores.

No Señor Operador y descripción
1 catchError

Este operador se encarga de detectar errores en la fuente Observable devolviendo un nuevo Observable o un error.

2 rever

Este operador se encargará de volver a intentarlo en la fuente Observable si hay un error y el reintento se realizará en función del recuento de entrada proporcionado.