Sobes.tech
Middle

Ce este un observable?

sobes.tech AI

Răspuns de la AI

Observable — este un flux de date care poate emite valori asincron. Spre deosebire de promisiuni, care returnează o singură valoare, observable poate emite zero, una sau mai multe valori în timp.

Caracteristici cheie:

  • Leneș: Fluxul începe să funcționeze doar la abonare.
  • Anulabil: Se poate dezabona de la flux pentru a opri execuția și a elibera resurse.
  • Multiple valori: Poate emite mai multe valori, în timp ce promisiunile se rezolvă doar o dată.

Componente principale:

  • Observable: Fluxul de date în sine.
  • Observer: Obiect cu metodele next, error și complete, care sunt apelate de observable.
  • Subscription: Rezultatul abonamentului la un observable, permite dezabonarea.
  • Operatori: Funcții care transformă sau combină observable (de exemplu, map, filter, merge).

Exemplu de utilizare (RxJS):

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

const source = of(1, 2, 3); // Creăm un observable care emite 1, 2, 3

const example = source.pipe(map(x => x + 1)); // Aplicăm operatorul map

const subscription = example.subscribe({ // Ne abonăm la observable
  next: value => console.log(`Next: ${value}`), // Procesarea fiecărui valoare
  error: err => console.error(`Error: ${err}`), // Tratarea erorilor
  complete: () => console.log('Complete!') // Se apelează la finalul fluxului
});

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

// subscription.unsubscribe(); // Se poate dezabona