Sobes.tech
Middle

Quali sono le somiglianze e le differenze tra Observable e Promise?

sobes.tech AI

Risposta dell'AI

Somiglianze:

  • Rappresentano operazioni asincrone.
  • Utilizzano funzioni per gestire il risultato (risolto) e l'errore (rifiutato).

Differenze:

Caratteristica Promise Observable
Valore/evento Restituisce un valore o un errore. Restituisce 0 o più valori nel tempo.
Annullamento Non può essere annullata dopo l'avvio. È possibile annullare l'iscrizione.
Molti sottoscrittori Esecuzione singola indipendente dai sottoscrittori. Una nuova sottoscrizione di solito porta a una nuova esecuzione (Observable freddo).
Lazy Inizia ad essere eseguita immediatamente dopo la creazione. Inizia ad essere eseguita solo dopo l'iscrizione.
Operatori Non ha operatori incorporati per la trasformazione. Ha un ricco set di operatori (map, filter, merge, ecc.).
Esempi di utilizzo Richieste HTTP, azioni differite. Eventi UI, connessioni WebSocket, intervalli.

Esempio di Observable:

import { Observable } from 'rxjs';

const observable = new Observable(subscriber => {
  subscriber.next(1);
  subscriber.next(2);
  setTimeout(() => {
    subscriber.next(3);
    subscriber.complete();
  }, 1000);
});

Esempio di Promise:

const promise = new Promise((resolve, reject) => {
  setTimeout(() => {
    resolve('Dati ricevuti');
  }, 1000);
});