RxJS - Últimas actualizaciones
Estamos usando la versión 6 de RxJS en este tutorial. RxJS se usa comúnmente para lidiar con la programación reactiva y se usa más a menudo con Angular, ReactJS. Angular 6 carga rxjs6 por defecto.
La versión 5 de RxJS se manejó de manera diferente en comparación con la versión 6. El código se romperá en caso de que actualice su RxJS 5 a 6. En este capítulo, veremos la diferencia en las formas de manejar la actualización de la versión.
En caso de que esté actualizando RxJS a 6 y no desee realizar cambios en el código, también puede hacerlo y tendrá que instalar el siguiente paquete.
npm install --save-dev rxjs-compact
Este paquete se encargará de proporcionar compatibilidad con versiones anteriores y el código antiguo funcionará bien con la versión 6 de RxJS. Si desea realizar los cambios de código que funcionan bien con RxJS 6, aquí están los cambios que deben realizarse.
Se reestructuraron los paquetes para operadores, observables, sujeto y por lo tanto, los principales cambios entran para las importaciones y se explican a continuación.
Importaciones para operadores
Según la versión 5, para los operadores se deben incluir las siguientes declaraciones de importación:
import 'rxjs/add/operator/mapTo'
import 'rxjs/add/operator/take'
import 'rxjs/add/operator/tap'
import 'rxjs/add/operator/map'
En la versión 6 de RxJS, las importaciones serán las siguientes:
import {mapTo, take, tap, map} from "rxjs/operators"
Importación de métodos para crear observables
Según la versión 5, al trabajar con Observables, se deben incluir los siguientes métodos de importación:
import "rxjs/add/observable/from";
import "rxjs/add/observable/of";
import "rxjs/add/observable/fromEvent";
import "rxjs/add/observable/interval";
En la versión 6 de RxJS, las importaciones serán las siguientes:
import {from, of, fromEvent, interval} from 'rxjs';
Importación de observables
En RxJS versión 5, mientras trabaja con Observables, se deben incluir las siguientes declaraciones de importación:
import { Observable } from 'rxjs/Observable'
En la versión 6 de RxJS, las importaciones serán las siguientes:
import { Observable } from 'rxjs'
Importación del tema
En la versión 5 de RxJS, el tema debe incluirse de la siguiente manera:
import { Subject} from 'rxjs/Subject'
En la versión 6 de RxJS, las importaciones serán las siguientes:
import { Subject } from 'rxjs'
¿Cómo usar operadores en RxJS 6?
pipe() methodestá disponible en el observable creado. Se agrega a RxJS desde la versión 5.5. Usando pipe () ahora puede trabajar en múltiples operadores juntos en orden secuencial. Así es como se utilizaron los operadores en la versión 5 de RxJS.
Ejemplo
import "rxjs/add/observable/from";
import 'rxjs/add/operator/max'
let list1 = [1, 6, 15, 10, 58, 2, 40];
from(list1).max((a,b)=>a-b).subscribe(x => console.log("The Max value is "+x));
Desde la versión 5.5 de RxJS en adelante, tenemos que usar pipe () para ejecutar el operador -
Ejemplo
import { from } from 'rxjs';
import { max } from 'rxjs/operators';
from(list1).pipe(max((a,b)=>a-b)).subscribe(x => console.log(
"The Max value is "+x)
);
Operadores renombrados
Durante la reestructuración de los paquetes, algunos de los operadores fueron renombrados porque estaban en conflicto o coincidían con palabras clave de JavaScript. La lista es la que se muestra a continuación:
Operador | Renombrado a |
---|---|
hacer() | grifo() |
captura() | catchError () |
cambiar() | switchAll () |
finalmente() | finalizar() |
lanzar() | throwError () |