Entendiendo los Operadores
Los operadores de RxJS son un conjunto de funciones para transformar, componer y controlar flujos de datos Observable.
Los operadores se suelen usar en combinación con varios otros, y aquí es donde entra en juego el "pipeline".
En RxJS, los operadores se dividen en las siguientes categorías
Lista de categorías
- Operadores de Transformación
- Operadores de Filtrado
- Operadores de Combinación
- Operadores de Utilidad
- Operadores Condicionales
- Operadores de Manejo de Errores
- Operadores de Multicasting
Cada categoría contiene varios operadores útiles. Consulta cada categoría para más detalles.
Lista de Operadores
Para una descripción detallada de cada operador, haz clic en el enlace correspondiente.
| Categoría | Operador | Descripción |
|---|---|---|
| Transformación | map | Convierte cada valor |
| scan | Acumula valores y emite resultados intermedios | |
| reduce | Acumula todos los valores y emite solo el resultado final | |
| pairwise | Procesa dos valores consecutivos en pares | |
| groupBy | Agrupa flujos por clave | |
| mergeMap | Ejecución paralela de procesamiento asíncrono | |
| switchMap | Ejecuta solo el procesamiento asíncrono más reciente (cancela procesamiento anterior) | |
| concatMap | Ejecuta procesos asíncronos secuencialmente | |
| exhaustMap | Ignora nuevos procesos durante la ejecución | |
| expand | Expande resultados recursivamente | |
| buffer | Publica valores en un array | |
| bufferTime | Publica valores en intervalos de tiempo especificados | |
| bufferCount | Publica valores en lotes de un número especificado | |
| bufferWhen | Buffering con condiciones de finalización controladas dinámicamente | |
| bufferToggle | Buffering con control independiente de inicio y fin | |
| Filtrado | filter | Solo deja pasar valores que coincidan con la condición |
| take | Obtiene solo los primeros N valores | |
| takeLast | Obtiene los últimos N valores | |
| takeWhile | Obtiene valores mientras se cumple la condición | |
| skip | Omite los primeros N valores | |
| skipLast | Omite los últimos N valores | |
| skipWhile | Omite valores mientras se satisface la condición | |
| skipUntil | Omite valores hasta que otro Observable emita | |
| first | Obtiene el primer valor o el primer valor que satisface una condición | |
| last | Obtiene el último valor o el último valor que satisface la condición | |
| elementAt | Obtiene el valor en un índice dado | |
| find | Encuentra el primer valor que satisface una condición | |
| findIndex | Obtiene el índice del primer valor que satisface la condición | |
| debounceTime | Emite el último valor si no se recibe entrada durante un tiempo especificado | |
| throttleTime | Deja pasar el primer valor e ignora nuevos valores durante el tiempo especificado | |
| auditTime | Emite el último valor después del tiempo especificado | |
| audit | Emite el último valor con Observable personalizado para controlar el período | |
| sampleTime | Muestrea el último valor en intervalos de tiempo especificados | |
| ignoreElements | Ignora todos los valores y solo deja pasar completados/errores | |
| distinct | Elimina todos los valores duplicados (emite solo valores únicos) | |
| distinctUntilChanged | Elimina valores duplicados consecutivos | |
| distinctUntilKeyChanged | Detecta solo cambios en propiedades específicas de un objeto | |
| Combinación (Pipeable) | concatWith | Une otros Observables en secuencia después de completar |
| mergeWith | Combina múltiples Observables simultáneamente | |
| combineLatestWith | Combina el último valor de cada Observable | |
| zipWith | Empareja valores en orden correspondiente | |
| raceWith | Adopta solo el primer Observable que emite | |
| withLatestFrom | Añade otros últimos valores al flujo principal | |
| mergeAll | Aplana Higher-order Observables en paralelo | |
| concatAll | Aplana Higher-order Observable en secuencia | |
| switchAll | Cambia al último Higher-order Observable | |
| exhaustAll | Ignora nuevo Higher-order Observable durante la ejecución | |
| combineLatestAll | Combina los últimos valores de todos los Observables internos | |
| zipAll | Empareja los valores correspondientes de cada Observable interno | |
| Utilidad | tap | Realiza efectos secundarios (ej. salida de log) |
| finalize | Realiza post-procesamiento al completar o con error | |
| delay | Retrasa todos los valores por un tiempo especificado | |
| delayWhen | Retrasa cada valor dinámicamente con un Observable separado | |
| timeout | Emite un error si un valor no llega dentro de un tiempo especificado | |
| takeUntil | Recupera valores hasta que otro Observable emite un valor | |
| retry | Reintenta hasta un número especificado de veces en caso de error | |
| repeat | Repite un número especificado de veces después de completar | |
| startWith | Añade un valor inicial al comienzo del flujo | |
| toArray | Publica todos los valores juntos en un array | |
| materialize | Convierte una notificación a un objeto Notification | |
| dematerialize | Convierte el objeto Notification de vuelta a una notificación normal | |
| observeOn | Usa el scheduler para controlar cuándo se publican los valores | |
| subscribeOn | Usa el scheduler para controlar cuándo iniciar la suscripción | |
| timestamp | Añade una marca de tiempo a cada valor | |
| Condicionales | defaultIfEmpty | Si no hay valor disponible, emite valor por defecto |
| every | Determina si todos los valores satisfacen la condición | |
| isEmpty | Determina si no se emitió ningún valor | |
| Manejo de Errores | catchError | Captura errores y realiza procesamiento de respaldo |
| retry | Reintenta un número especificado de veces en caso de error | |
| retryWhen | Reintenta con condiciones personalizadas | |
| Multicasting | share | Comparte Observable entre múltiples suscriptores |
| shareReplay | Cachea los últimos N valores y los reproduce para nuevos suscriptores |