Sobes.tech
Middle

Čo je observable?

sobes.tech AI

Odpoveď od AI

Observable — je tok dát, ktorý môže emitovať hodnoty asynchrónne. Na rozdiel od promise, ktoré vracia jedinú hodnotu, môže observable emitovať nulu, jednu alebo viac hodnôt v priebehu času.

Kľúčové vlastnosti:

  • Lenivý: Tok začína pracovať až pri odberu.
  • Zrušiteľný: Môžete sa odhlásiť z toku, aby ste zastavili jeho vykonávanie a uvoľnili zdroje.
  • Viac hodnôt: Môže emitovať viac hodnôt, zatiaľ čo promise sa rieši iba raz.

Hlavné komponenty:

  • Observable: Samotný dátový tok.
  • Observer: Objekt s metódami next, error a complete, ktoré sú volané observable.
  • Subscription: Výsledok odberu na observable, umožňuje odhlásenie.
  • Operátory: Funkcie, ktoré transformujú alebo kombinujú observable (napríklad map, filter, merge).

Príklad použitia (RxJS):

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

const source = of(1, 2, 3); // Vytvoríme observable, ktoré emitujú 1, 2, 3

const example = source.pipe(map(x => x + 1)); // Použijeme operátor map

const subscription = example.subscribe({ // Prihlásime sa k observable
  next: value => console.log(`Next: ${value}`), // Spracovanie každej hodnoty
  error: err => console.error(`Error: ${err}`), // Spracovanie chyby
  complete: () => console.log('Complete!') // Volá sa pri ukončení
});

// výstup:
// Next: 2
// Next: 3
// Next: 4
// Complete!

// subscription.unsubscribe(); // Môže byť odhlásenie