Sobes.tech
Middle

Wat zijn de overeenkomsten en verschillen tussen Observable en Promise?

sobes.tech AI

Antwoord van AI

Observable vertegenwoordigt een datastroom die in staat is om meerdere waarden in de loop van de tijd uit te zenden. Het is reactief en ondersteunt het annuleren van abonnementen. Promise wordt altijd slechts één keer opgelost of afgewezen en is eenmalig. Observable ondersteunt operators voor het transformeren van gegevens, Promise niet.

Kenmerk Observable Promise
Aantal waarden Kan meerdere waarden uitzenden Altijd één waarde (resolve/reject)
Annulering Ondersteunt annulering van abonnement Ondersteunt geen annulering
Reactiviteit Reactief Nee
Operators Ondersteunt operators (map, filter, etc.) Nee
Luiheid Lui (wordt uitgevoerd bij abonnement) Gretig (wordt onmiddellijk uitgevoerd)

Voorbeeld 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 waarde:', value),
  error: err => console.error('Observable fout:', err),
  complete: () => console.log('Observable compleet'),
});

Voorbeeld Promise:

const myPromise = new Promise((resolve, reject) => {
  setTimeout(() => {
    resolve('Promise opgelost');
    // reject('Promise afgewezen');
  }, 1000);
});

myPromise
  .then(value => console.log('Promise waarde:', value))
  .catch(error => console.error('Promise fout:', error));