
Dans cet article, nous parlerons des nouvelles fonctionnalités et améliorations de la dernière version de RxJS 6.5.0 .
Nouvelle instruction fromFetch
RxJS fournit désormais une prise en charge native de l' API de récupération native, y compris la possibilité d'interrompre les demandes à l'aide d' 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() { ... } });
Instruction forkJoin améliorée
Je l'ai aimé le plus. L'instruction forkJoin accepte désormais un dictionnaire source:
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 }) { } });
De plus, l'utilisation de cet opérateur sous la forme de forkJoin(a, b, c, d)
est déconseillée; à la place, forkJoin([a, b, c, d])
doit être écrit.
Partition observable
L'instruction de partition
existante est désormais obsolète et une nouvelle instruction de partition
observable générique la partition
.
La partition divise l'objet source en deux objets de type observable, un pour les valeurs qui satisfont le prédicat donné et le second pour les valeurs qui ne le sont pas.
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') } });
combineDernier transféré au statut obsolète
La nouvelle version n'utilise plus les signatures combineLatest
, à l'exception de combineLatest([a, b, c])
. Lisez les raisons de ce changement ici .
Planificateurs
Utilisez l'instruction scheduled
pour configurer le planificateur pour un observable existant. Les versions planifiées (celles qui prennent le planificateur comme paramètre) des versions from
, range
et autres instructions sont déconseillées.
import { of, scheduled, asapScheduler } from 'rxjs'; console.log(1);