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,erroracomplete, 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