In questo articolo parleremo di RxJS, una delle libreria più utilizzate nell’ambito dello sviluppo web.
Troverai esempi pratici per capire a cosa serve, come si utilizza e perché sia così utilizzata.
Indice
RxJS cosa è
RxJs è una libreria che implementa il concetto di reactive programming.
Facendo uso degli Observables, questa libreria permette di scrivere codice asincrono basato sul callback in maniera semplice ed ordinata.
Concettualmente, questa libreria ha molte analogie con le Promises, gli oggetti built-in di JavaScript per la gestione degli eventi asincroni.
Come vedrai nel seguito dell’articolo, il codice necessario per far uso della libreria risulterà essere espressione della Programmazione Funzionale.
RxJS dove viene utilizzata
RxJS è una libreria molto flessibile.
Infatti, consente di implementare logiche complesse scrivendo codice comprensibile.
Per questo motivo, è utilizzata in framework per le applicazioni web molto diffusi, come Angular.
Sul sito ufficiale del framework è presente un’intera sezione dedicata all’utilizzo della libreria, con esempi pratici di utilizzo.
Nell’esempio qui sopra puoi trovare un esempio di utilizzo dell’operatore combineLatest di RxJS, per combinare le emissioni due Observables.
Il primo viene creato opportunamente nel codice affinché emetta un numero generato in maniera casuale, il secondo è quello creato dal metodo get( ... ) di HttpClient.
Ecco il codice che implementa l’esempio:
export class AppComponent {
output: string[];
constructor(public httpClient: HttpClient) {
this.output = [];
const aNumber: number = Math.random();
// we create an Observable
let observable$ = new Observable((observer: Subscriber<number>) => {
observer.next(aNumber);
});
this.output.push('observable will emit ' + aNumber);
const targetUrl =
'https://www.dariocapozzi.it/wp-json/wp/v2/posts?per_page=1&categories=43,6&exclude=1890&orderby=rand';
this.output.push('going to perform http request to ' + targetUrl);
let httpResponseObservable$ = this.httpClient.get(targetUrl);
combineLatest([observable$, httpResponseObservable$]).subscribe(
([observableValue, httpResponseValue]) => {
this.output.push(
'combineLatest emitted value: ' +
JSON.stringify([observableValue, httpResponseValue], null, 2)
);
}
);
}
}
[Video]: la libreria in vanilla JavaScript
In questo video utilizzo RxJS in un progetto HTML + CSS + JavaScript.
Hai capito bene: niente TypeScript o Angular.
Se questo video fosse stato interessante, potresti valutare di iscriverti al canale.
RxJS alcuni esempi
In questo blog sono presenti numerosi articoli riguardanti questa libreria.
La maggior parte degli esempi è corredata di esempi interattivi, per comprendere meglio i concetti espressi nel contenuto.
Ecco alcuni articoli riguardanti questa libreria.
- RxJS: Subject vs BehaviorSubject
- RxJS: Hot Observables vs Cold Observables
- Memoria RxJS: come gestirla correttamente
- forkJoin RxJS: come utilizzarlo
- combineLatest RxJS: come utilizzarlo
- Operatori RxJS: imparare il funzionamento dinamicamente
- Memoria RxJS: come gestirla correttamente
- Observable RxJS: cosa è, come si usa
- switchMap RxJS: guida con esempio pratico
Se invece fossi interessato ad altri argomenti correlati, puoi visitare le sezioni dedicate ad Angular, a JavaScript ed al Web Development.
Conclusioni
In questo articolo hai scoperto cosa sia RxJS, la libreria che implementa i paradigmi del reactive programming.
Se volessi approfondire l’utilizzo di questa libreria, puoi controllare il sito ufficiale della libreria.
Hai suggerimenti o commenti riguardo ai contenuti di questo blog?
Puoi contattarmi secondo le modalità espresse nella sezione About.



