Sobes.tech
Middle

Co je to observable?

sobes.tech AI

Odpověď od AI

Observable — je tok datových proudů, který může asynchronně emitovat hodnoty. Na rozdíl od promise, které vrací jedinou hodnotu, může observable emitovat nula, jednu nebo více hodnot v průběhu času.

Klíčové vlastnosti:

  • Líný: Tok začíná pracovat pouze při předplatném.
  • Zrušitelné: Můžete se odhlásit z toku, aby se zastavila jeho činnost a uvolnily se zdroje.
  • Více hodnot: Může emitovat více hodnot, zatímco promise se řeší pouze jednou.

Hlavní komponenty:

  • Observable: Samotný datový proud.
  • Observer: Objekt s metodami next, error a complete, které jsou volány observable.
  • Subscription: Výsledek předplatného na observable, umožňuje odhlášení.
  • Operátory: Funkce, které transformují nebo kombinují observable (například map, filter, merge).

Příklad použití (RxJS):

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

const source = of(1, 2, 3); // Vytvoříme observable, které emitují 1, 2, 3

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

const subscription = example.subscribe({ // Přihlásíme se k observable
  next: value => console.log(`Next: ${value}`), // Zpracování každé hodnoty
  error: err => console.error(`Error: ${err}`), // Zpracování chyby
  complete: () => console.log('Complete!') // Volá se při ukončení
});

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

// subscription.unsubscribe(); // Může být odhlášení