RxJS - najnowsze aktualizacje

W tym samouczku używamy RxJS w wersji 6. RxJS jest powszechnie używany do radzenia sobie z programowaniem reaktywnym i częściej używany z Angular, ReactJS. Angular 6 domyślnie ładuje rxjs6.

Wersja 5 RxJS była obsługiwana inaczej niż wersja 6. Kod ulegnie awarii w przypadku aktualizacji RxJS 5 do 6. W tym rozdziale zobaczymy różnicę w sposobach obsługi aktualizacji wersji.

Jeśli aktualizujesz RxJS do 6 i nie chcesz wprowadzać zmian w kodzie, możesz to zrobić również i będziesz musiał zainstalować następujący pakiet.

npm install --save-dev rxjs-compact

Ten pakiet zadba o zapewnienie kompatybilności wstecznej, a stary kod będzie działał dobrze z RxJS w wersji 6. Jeśli chcesz wprowadzić zmiany w kodzie, które działają dobrze z RxJS 6, oto zmiany, które należy wprowadzić.

Pakiety dla operatorów, obserwabli, temat zostały zrestrukturyzowane, w związku z czym główne zmiany dotyczą importu i zostały wyjaśnione poniżej.

Import dla operatorów

Zgodnie z wersją 5 dla operatorów należy dołączyć następujące zestawienia importu -

import 'rxjs/add/operator/mapTo'
import 'rxjs/add/operator/take'
import 'rxjs/add/operator/tap'
import 'rxjs/add/operator/map'

W wersji 6 RxJS import będzie wyglądał następująco -

import {mapTo, take, tap, map} from "rxjs/operators"

Import metod do tworzenia Observables

Zgodnie z wersją 5, podczas pracy z Observables, należy uwzględnić następujące metody importu -

import "rxjs/add/observable/from";
import "rxjs/add/observable/of";
import "rxjs/add/observable/fromEvent";
import "rxjs/add/observable/interval";

W wersji 6 RxJS import będzie wyglądał następująco -

import {from, of, fromEvent, interval} from 'rxjs';

Import observables

W RxJS w wersji 5, podczas pracy z Observables, należy dołączyć następujące instrukcje importu -

import { Observable } from 'rxjs/Observable'

W RxJS w wersji 6 import będzie wyglądał następująco -

import { Observable } from 'rxjs'

Import przedmiotu

W RxJS w wersji 5 temat należy umieścić w następujący sposób -

import { Subject} from 'rxjs/Subject'

W RxJS w wersji 6 import będzie wyglądał następująco -

import { Subject } from 'rxjs'

Jak używać operatorów w RxJS 6?

pipe() methodjest dostępny na utworzonej obserwowalnej. Jest dodawany do RxJS od wersji 5.5. Używając pipe (), możesz teraz pracować z wieloma operatorami razem w kolejności sekwencyjnej. W ten sposób operatory zostały użyte w RxJS w wersji 5.

Przykład

import "rxjs/add/observable/from";
import 'rxjs/add/operator/max'

let list1 = [1, 6, 15, 10, 58, 2, 40];
from(list1).max((a,b)=>a-b).subscribe(x => console.log("The Max value is "+x));

Od wersji RxJS 5.5 i nowszych musimy użyć pipe () do wykonania operatora -

Przykład

import { from } from 'rxjs';
import { max } from 'rxjs/operators';

from(list1).pipe(max((a,b)=>a-b)).subscribe(x => console.log(
   "The Max value is "+x)
);

Zmieniono nazwy operatorów

Podczas restrukturyzacji pakietów zmieniono nazwy niektórych operatorów, ponieważ były w konflikcie lub pasowały do ​​słów kluczowych javascript. Lista jest taka, jak pokazano poniżej -

Operator Zmieniono nazwę na
zrobić() kran()
łapać() catchError ()
przełącznik() switchAll ()
Wreszcie() sfinalizować()
rzucać() throwError ()