Middle
Wat zijn de overeenkomsten en verschillen tussen Observable en Promise?
sobes.tech AI
Antwoord van AI
Gelijkenissen:
- Stellen asynchrone operaties voor.
- Gebruiken functies om het resultaat (opgelost) en de fout (afgewezen) te verwerken.
Verschillen:
| Kenmerk | Promise | Observable |
|---|---|---|
| Waarde/gebeurtenis | Geeft één waarde of een fout terug. | Geeft 0 of meer waarden in de loop van de tijd terug. |
| Annulering | Kan niet worden geannuleerd nadat het is gestart. | Kan worden geannuleerd door op te abonneren. |
| Meerdere abonnees | Eenmalige uitvoering onafhankelijk van abonnees. | Een nieuwe abonnement leidt meestal tot een nieuwe uitvoering (koud Observable). |
| Luiheid | Begint onmiddellijk na creatie uit te voeren. | Begint pas na abonnement uit te voeren. |
| Operators | Heeft geen ingebouwde operators voor transformatie. | Heeft een rijke set operators (map, filter, merge, etc.). |
| Gebruik voorbeelden | HTTP-verzoeken, uitgestelde acties. | UI-gebeurtenissen, WebSocket-verbindingen, intervallen. |
Voorbeeld Observable:
import { Observable } from 'rxjs';
const observable = new Observable(subscriber => {
subscriber.next(1);
subscriber.next(2);
setTimeout(() => {
subscriber.next(3);
subscriber.complete();
}, 1000);
});
Voorbeeld Promise:
const promise = new Promise((resolve, reject) => {
setTimeout(() => {
resolve('Gegevens ontvangen');
}, 1000);
});