
En esta publicación, hablaremos sobre las nuevas características y mejoras de la última versión de RxJS 6.5.0 .
Nueva declaración fromFetch
RxJS ahora proporciona soporte nativo para la API de recuperación nativa, incluida la capacidad de interrumpir las solicitudes utilizando AbortController .
import { of } from 'rxjs'; import { switchMap, catchError } from 'rxjs/operators'; import { fromFetch } from 'rxjs/fetch'; const users$ = fromFetch('https://reqres.in/api/users').pipe( switchMap(response => { if (response.ok) { return response.json(); } else { return of({ error: true, message: `Error ${response.status}` }); } }), catchError((error) => of({ error: true, message: error.message })) ); users$.subscribe({ next(data) { ... }, complete() { ... } });
Declaración de forkJoin mejorada
Me gustó más. La instrucción forkJoin ahora acepta un diccionario fuente:
import { forkJoin, timer } from 'rxjs'; import { take, mapTo } from 'rxjs/operators'; const source = forkJoin({ todos: timer(500).pipe(mapTo([{ title: 'RxJS'}])), user: timer(500).pipe(mapTo({ id: 1 })) }); source.subscribe({ next({ todos, user }) { } });
Además, el uso de este operador en forma de forkJoin(a, b, c, d)
está en desuso; en cambio, forkJoin([a, b, c, d])
debe escribirse.
Partición observable
La declaración de partition
existente ahora está en desuso, y una nueva declaración de partition
observable genérica la partition
.
La partición divide el objeto fuente en dos objetos de tipo observable, uno para valores que satisfacen el predicado dado y el segundo para valores que no lo hacen.
import { fromEvent, partition } from 'rxjs'; const clicks$ = fromEvent(document, 'click'); const [clicksOnH1$, clicksElsewhere$] = partition(clicks$, event => event.target.tagName === 'H1'); clicksOnH1$.subscribe({ next() { console.log('clicked on h1') } }); clicksElsewhere$ .subscribe({ next() { console.log('Other clicked') } });
combineLatest transferido al estado obsoleto
La nueva versión ya no utiliza combineLatest
firmas combineLatest
, con la excepción de combineLatest([a, b, c])
. Lea las razones de este cambio aquí .
Planificadores
Use la instrucción scheduled
para configurar el programador para un observable existente. Las versiones planificadas (aquellas que toman el planificador como parámetro) de las declaraciones from
, range
y otras están en desuso.
import { of, scheduled, asapScheduler } from 'rxjs'; console.log(1);