Middle
Was sind die Gemeinsamkeiten und Unterschiede zwischen Observable und Promise?
sobes.tech KI
Antwort von AI
Ähnlichkeiten:
- Stellen asynchrone Operationen dar.
- Verwenden Funktionen zur Verarbeitung des Ergebnisses (resolved) und des Fehlers (rejected).
Unterschiede:
| Eigenschaft | Promise | Observable |
|---|---|---|
| Wert/Ereignis | Gibt einen Wert oder einen Fehler zurück. | Gibt 0 oder mehr Werte im Laufe der Zeit zurück. |
| Abbruch | Kann nach dem Start nicht abgebrochen werden. | Abonnement kann abgebrochen werden. |
| Mehrere Abonnenten | Einmalige Ausführung unabhängig von Abonnenten. | Ein neues Abonnement führt in der Regel zu einer neuen Ausführung (kaltes Observable). |
| Lazy | Beginnt sofort nach Erstellung ausgeführt zu werden. | Beginnt erst nach Abonnement ausgeführt zu werden. |
| Operatoren | Keine eingebauten Operatoren für Transformation. | Hat eine umfangreiche Sammlung von Operatoren (map, filter, merge usw.). |
| Anwendungsbeispiele | HTTP-Anfragen, verzögerte Aktionen. | UI-Ereignisse, WebSocket-Verbindungen, Intervalle. |
Beispiel Observable:
import { Observable } from 'rxjs';
const observable = new Observable(subscriber => {
subscriber.next(1);
subscriber.next(2);
setTimeout(() => {
subscriber.next(3);
subscriber.complete();
}, 1000);
});
Beispiel Promise:
const promise = new Promise((resolve, reject) => {
setTimeout(() => {
resolve('Daten empfangen');
}, 1000);
});