Middle
Wat zijn de overeenkomsten en verschillen tussen Observable en Promise?
sobes.tech AI
Antwoord van AI
Observable vertegenwoordigt een datastroom die in staat is om meerdere waarden in de loop van de tijd uit te zenden. Het is reactief en ondersteunt het annuleren van abonnementen. Promise wordt altijd slechts één keer opgelost of afgewezen en is eenmalig. Observable ondersteunt operators voor het transformeren van gegevens, Promise niet.
| Kenmerk | Observable | Promise |
|---|---|---|
| Aantal waarden | Kan meerdere waarden uitzenden | Altijd één waarde (resolve/reject) |
| Annulering | Ondersteunt annulering van abonnement | Ondersteunt geen annulering |
| Reactiviteit | Reactief | Nee |
| Operators | Ondersteunt operators (map, filter, etc.) | Nee |
| Luiheid | Lui (wordt uitgevoerd bij abonnement) | Gretig (wordt onmiddellijk uitgevoerd) |
Voorbeeld 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('Observable waarde:', value),
error: err => console.error('Observable fout:', err),
complete: () => console.log('Observable compleet'),
});
Voorbeeld Promise:
const myPromise = new Promise((resolve, reject) => {
setTimeout(() => {
resolve('Promise opgelost');
// reject('Promise afgewezen');
}, 1000);
});
myPromise
.then(value => console.log('Promise waarde:', value))
.catch(error => console.error('Promise fout:', error));