Middle
Was sind die Gemeinsamkeiten und Unterschiede zwischen Observable und Promise?
sobes.tech KI
Antwort von AI
Observable stellt einen Datenstrom dar, der in der Lage ist, im Laufe der Zeit mehrere Werte auszustrahlen. Es ist reaktiv und unterstützt das Abbestellen. Promise wird immer nur einmal aufgelöst oder abgelehnt und ist einmalig. Observable unterstützt Operatoren zur Datenumwandlung, Promise nicht.
| Merkmal | Observable | Promise |
|---|---|---|
| Anzahl der Werte | Kann mehrere Werte ausstrahlen | Immer ein Wert (resolve/reject) |
| Abbestellung | Unterstützt Abbestellung | Unterstützt keine Abbestellung |
| Reaktivität | Reaktiv | Nicht |
| Operatoren | Unterstützt Operatoren (map, filter, etc.) | Nicht |
| Faulheit | Faul (wird bei Abonnement ausgeführt) | Eifrig (wird sofort ausgeführt) |
Beispiel 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-Wert:', value),
error: err => console.error('Observable-Fehler:', err),
complete: () => console.log('Observable abgeschlossen'),
});
Beispiel Promise:
const myPromise = new Promise((resolve, reject) => {
setTimeout(() => {
resolve('Promise aufgelöst');
// reject('Promise abgelehnt');
}, 1000);
});
myPromise
.then(value => console.log('Promise-Wert:', value))
.catch(error => console.error('Promise-Fehler:', error));