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