
In diesem Beitrag werden wir über neue Funktionen und Verbesserungen der neuesten Version von RxJS 6.5.0 sprechen .
Neue fromFetch-Anweisung
RxJS bietet jetzt native Unterstützung für die native Abruf- API, einschließlich der Möglichkeit, Anforderungen mithilfe des AbortControllers zu unterbrechen.
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() { ... } });
Erweiterte forkJoin-Anweisung
Mir hat es am besten gefallen. Die forkJoin-Anweisung akzeptiert jetzt ein Quellwörterbuch:
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 }) { } });
Außerdem ist die Verwendung dieses Operators in Form von forkJoin(a, b, c, d)
veraltet. Stattdessen sollte forkJoin([a, b, c, d])
geschrieben werden.
Partition beobachtbar
Die vorhandene partition
ist jetzt veraltet und wird durch eine neue generische beobachtbare partition
.
Die Partition unterteilt das Quellobjekt in zwei beobachtbare Objekte vom Typ, eines für Werte, die das angegebene Prädikat erfüllen, und das zweite für Werte, die dies nicht tun.
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') } });
combinLatest wird in den veralteten Status versetzt
Die neue Version verwendet keine combineLatest
Signaturen mehr, mit Ausnahme von combineLatest([a, b, c])
. Lesen Sie hier die Gründe für diese Änderung.
Planer
Verwenden Sie die scheduled
Anweisung, um den Scheduler für eine vorhandene Observable zu konfigurieren. Geplante (von denen der Scheduler als Parameter verwendet wird) Versionen von from
, range
und anderen Anweisungen sind veraltet.
import { of, scheduled, asapScheduler } from 'rxjs'; console.log(1);