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);
});