Sobes.tech
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);
});