Sobes.tech
Middle

Wat is een observable?

sobes.tech AI

Antwoord van AI

Observable — is een datastroom die waarden asynchroon kan uitzenden. In tegenstelling tot promises, die één waarde teruggeven, kan een observable nul, één of meerdere waarden uitzenden in de loop van de tijd.

Belangrijke kenmerken:

  • Lui: De stroom begint alleen te werken bij inschrijving.
  • Annuleerbaar: Je kunt je afmelden voor de stroom om de uitvoering te stoppen en bronnen vrij te maken.
  • Meerdere waarden: Kan meerdere waarden uitzenden, terwijl promises slechts één keer oplossen.

Belangrijkste componenten:

  • Observable: De datastroom zelf.
  • Observer: Object met methoden next, error en complete, die door de observable worden aangeroepen.
  • Subscription: Resultaat van inschrijving op een observable, maakt afmelden mogelijk.
  • Operators: Functies die observables transformeren of combineren (bijvoorbeeld map, filter, merge).

Voorbeeld gebruik (RxJS):

import { of } from 'rxjs';
import { map } from 'rxjs/operators';

const source = of(1, 2, 3); // Creëer een observable die 1, 2, 3 uitzendt

const example = source.pipe(map(x => x + 1)); // Pas de map operator toe

const subscription = example.subscribe({ // Abonneer je op de observable
  next: value => console.log(`Next: ${value}`), // Verwerk elke waarde
  error: err => console.error(`Error: ${err}`), // Foutafhandeling
  complete: () => console.log('Complete!') // Wordt aangeroepen bij voltooiing
});

// output:
// Next: 2
// Next: 3
// Next: 4
// Complete!

// subscription.unsubscribe(); // Kan afmelden