Whats new in RxJS v6.5

Bulruno
2 min readApr 7, 2020

RxJS version is available now available.

New Fetch Observable

RxJS now provides built-in support for using native JS fetch API, including ability to abort requests with AbortController baked-in.

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() { ... } });

forkJoin Improvements

forkJoin now takes dictionary of sources

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 }) { }
});

Moreover, there is one deprecation, forkJoin(a,b,c,d) should no longer be used; Instead, pass an array such as forkJoin([a, b, c, d]).

Partition Observable

The current partition observable operator is deprecated in faor of new creation observable, named partition.

The partition observable splits the source observable into two observable’s, one for values which satisfy given predicate, and other for values which don’t.

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 Deprecation

This version deprecates all combineLatest signature except CombineLatest([a, b, c]). You can read reason for change here.

Schedulers:

Add the scheduled creation function to create a scheduled observable of values. The scheduled version of from, range, et al. have been depracated.

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)

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

No responses yet

Write a response