Sobes.tech
Middle

Kas ir observable?

sobes.tech AI

Atbilde no AI

Observable — tas ir datu plūsma, kas var emitēt vērtības asenhroni. Atšķirībā no promises, kas atgriež vienu vērtību, observable var emitēt nulli, vienu vai vairākas vērtības laika gaitā.

Galvenās īpašības:

  • Lēni: Plūsma sāk darboties tikai tad, kad ir abonēta.
  • Atceļama: Var atteikties no plūsmas, lai apturētu tās izpildi un atbrīvotu resursus.
  • Daudzas vērtības: Var emitēt vairākas vērtības, kamēr promises tiek atrisinātas tikai vienu reizi.

Galvenās sastāvdaļas:

  • Observable: Paša datu plūsma.
  • Observer: Objekts ar metodēm next, error un complete, kas tiek izsaukts no observable.
  • Subscription: Rezultāts no abonēšanas uz observable, ļauj atteikties.
  • Operators: Funkcijas, kas transformē vai apvieno observable (piemēram, map, filter, merge).

Piemērs lietošanai (RxJS):

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

const source = of(1, 2, 3); // Izveidojam observable, kas emitē 1, 2, 3

const example = source.pipe(map(x => x + 1)); // Pielietojam `map` operatoru

const subscription = example.subscribe({ // Pierakstāmies uz observable
  next: value => console.log(`Next: ${value}`), // Apstrādā katru vērtību
  error: err => console.error(`Error: ${err}`), // Kļūdu apstrāde
  complete: () => console.log('Complete!') // Kad pabeidzas
});

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

// subscription.unsubscribe(); // Var atcelt abonēšanu