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. |