[TIPS] RxJS subject

A volte abbiamo la necessità di emettere eventi per poter notificare delle informazioni nella nostra applicazione.
La potente libreria RxJS ci viene incontro anche in questo, perché tra le altre cose ci fornisce la classe Subject.

Possiamo definire Subject come una classe che può comportarsi da Observable e Observer contemporaneamente

Subject può sostituire l’emissione di un evento e la sua gestione attraverso due semplici metodi, che vediamo nell’esempio.
Creiamo un semplice servizio:

import { Subject } from 'rxjs/Subject';
...
export class MyService {
     mySubject = new Subject();   
}

Per utilizzare il Subject appena creato in MyService, creiamo un Component che “emette” del testo

import { MyService } from '../myservice.service';
....
export class MyComponent {
  constructor(private myservice: MyService) {}

  someMethod() {
       // per esempio emettiamo del testo
       this.myservice.mySubject.next('Some text');
  }

}

In un altro Component, possiamo scrivere:


import { MyService } from '../myservice.service';
....
export class MyOtherComponent {
  constructor(private myservice: MyService) {}

  someMethod() {
       // stampiamo su console il testo emesso dal Componente MyComponent
       this.myservice.mySubject.subscribe(
           ( testo: string ) => {  console.log(testo); }
       );
  }

}

Con questo breve esempio abbiamo visto come sia facile gestire l’emissione e l’utilizzo di informazioni attraverso Subject della libreria RxJS.
Spero possa esservi utile.

RSS AngularJob

ddelfio Written by: