Nouveautés de RxJS v6.5


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.


 // DEPRECATED forkJoin(of(1), of(2)).subscribe(); // use an array instead forkJoin([of(1), of(2)]).subscribe(); 

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); // DEPRECATED // of(2, asapScheduler).subscribe({ // next(value) { // console.log(value); // } // }); scheduled(of(2), asapScheduler).subscribe({ next(value) { console.log(value); } }); console.log(3) 

Source: https://habr.com/ru/post/fr450718/


All Articles