
Dalam posting ini kita akan berbicara tentang fitur-fitur baru dan peningkatan versi terbaru RxJS 6.5.0 .
Pernyataan fromFetch baru
RxJS sekarang menyediakan dukungan asli untuk API pengambilan asli, termasuk kemampuan untuk mengganggu permintaan menggunakan 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() { ... } }); 
Pernyataan forkJoin yang disempurnakan
Saya paling menyukainya. Pernyataan forkJoin sekarang menerima kamus sumber:
 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 }) { } }); 
Selain itu, penggunaan operator ini dalam bentuk forkJoin(a, b, c, d) sudah tidak digunakan lagi, sebagai gantinya, forkJoin([a, b, c, d]) harus ditulis.
 
Partisi diamati
Pernyataan partition yang ada sekarang sudah tidak digunakan lagi, dan pernyataan partition generik baru partition .
Partisi membagi objek sumber menjadi dua objek bertipe yang dapat diamati, satu untuk nilai yang memenuhi predikat yang diberikan, dan yang kedua untuk nilai yang tidak.
 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') } }); 
kombinasikanLatest ditransfer ke status usang
Versi baru tidak lagi menggunakan tanda tangan combineLatest , dengan pengecualian combineLatest([a, b, c]) . Baca alasan untuk perubahan ini di sini .
Perencana
Gunakan pernyataan scheduled untuk mengkonfigurasi penjadwal agar dapat diamati. Versi yang direncanakan (yang menjadikan penjadwal sebagai parameter) from , range dan pernyataan lainnya sudah usang.
 import { of, scheduled, asapScheduler } from 'rxjs'; console.log(1);