Middle
Quali sono le somiglianze e le differenze tra Observable e Promise?
sobes.tech AI
Risposta dell'AI
Observable rappresenta un flusso di dati in grado di emettere molteplici valori nel tempo. È reattivo e supporta l'annullamento dell'iscrizione. Promise viene sempre risolta o rifiutata una sola volta ed è monouso. Observable supporta operatori per la trasformazione dei dati, Promise no.
| Caratteristica | Observable | Promise |
|---|---|---|
| Numero di valori | Può emettere molteplici valori | Sempre un valore (resolve/reject) |
| Annullamento | Supporta l'annullamento dell'iscrizione | Non supporta l'annullamento |
| Reattività | Reattivo | No |
| Operatori | Supporta operatori (map, filter, etc.) | No |
| Pigrizia | Pigrizia (si esegue all'iscrizione) | Esecuzione immediata |
Esempio di Observable:
import { Observable } from 'rxjs';
const myObservable = new Observable(subscriber => {
subscriber.next(1);
subscriber.next(2);
setTimeout(() => {
subscriber.next(3);
subscriber.complete();
}, 1000);
});
myObservable.subscribe({
next: value => console.log('Valore Observable:', value),
error: err => console.error('Errore Observable:', err),
complete: () => console.log('Observable completato'),
});
Esempio di Promise:
const myPromise = new Promise((resolve, reject) => {
setTimeout(() => {
resolve('Promise risolta');
// reject('Promise rifiutata');
}, 1000);
});
myPromise
.then(value => console.log('Valore Promise:', value))
.catch(error => console.error('Errore Promise:', error));