RxJS - Ultimi aggiornamenti
Stiamo usando RxJS versione 6 in questo tutorial. RxJS è comunemente usato per gestire la programmazione reattiva e usato più spesso con Angular, ReactJS. Angular 6 carica rxjs6 per impostazione predefinita.
La versione 5 di RxJS è stata gestita in modo diverso rispetto alla versione 6. Il codice si interromperà nel caso in cui aggiorni la tua RxJS 5 alla 6. In questo capitolo vedremo la differenza nei modi di gestire l'aggiornamento della versione.
Nel caso in cui stai aggiornando RxJS a 6 e non vuoi apportare le modifiche al codice, puoi farlo anche tu e dovrai installare il seguente pacchetto.
npm install --save-dev rxjs-compact
Questo pacchetto si occuperà di fornire la compatibilità con le versioni precedenti e il vecchio codice funzionerà bene con RxJS versione 6. Se vuoi apportare modifiche al codice che funzionano bene con RxJS 6, ecco le modifiche che devono essere fatte.
I pacchetti per gli operatori, gli osservabili, i soggetti sono stati ristrutturati e, di conseguenza, le principali modifiche riguardano le importazioni e sono spiegate di seguito.
Importazioni per operatori
Come per la versione 5, per gli operatori dovrebbero essere incluse le seguenti istruzioni di importazione:
import 'rxjs/add/operator/mapTo'
import 'rxjs/add/operator/take'
import 'rxjs/add/operator/tap'
import 'rxjs/add/operator/map'
Nella versione 6 di RxJS le importazioni saranno le seguenti:
import {mapTo, take, tap, map} from "rxjs/operators"
Importazione di metodi per creare osservabili
Come per la versione 5, mentre si lavora con Observables, dovrebbero essere inclusi i seguenti metodi di importazione:
import "rxjs/add/observable/from";
import "rxjs/add/observable/of";
import "rxjs/add/observable/fromEvent";
import "rxjs/add/observable/interval";
Nella versione 6 di RxJS le importazioni saranno le seguenti:
import {from, of, fromEvent, interval} from 'rxjs';
Importazione di osservabili
Nella versione 5 di RxJS, mentre si lavora con Observables, dovrebbero essere incluse le seguenti istruzioni di importazione:
import { Observable } from 'rxjs/Observable'
Nella versione 6 di RxJS, le importazioni saranno le seguenti:
import { Observable } from 'rxjs'
Importazione dell'oggetto
Nella versione 5 di RxJS, l'oggetto dovrebbe essere incluso come segue:
import { Subject} from 'rxjs/Subject'
Nella versione 6 di RxJS, le importazioni saranno le seguenti:
import { Subject } from 'rxjs'
Come utilizzare gli operatori in RxJS 6?
pipe() methodè disponibile sull'osservabile creato. Viene aggiunto a RxJS dalla versione 5.5. Usando pipe () ora puoi lavorare su più operatori insieme in ordine sequenziale. Ecco come venivano usati gli operatori nella versione 5 di RxJS.
Esempio
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));
Dalla versione 5.5 di RxJS in poi, dobbiamo usare pipe () per eseguire l'operatore -
Esempio
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)
);
Operatori rinominati
Durante la ristrutturazione dei pacchetti alcuni operatori sono stati rinominati in quanto erano in conflitto o corrispondenti alle parole chiave javascript. L'elenco è come mostrato di seguito:
Operatore | Rinominato in |
---|---|
fare() | rubinetto() |
catturare() | catchError () |
interruttore() | switchAll () |
finalmente() | finalizzare () |
gettare() | throwError () |