Sobes.tech
Middle

Czym jest observable?

sobes.tech AI

Odpowiedź od AI

Observable — to strumień danych, który może emitować wartości asynchronicznie. W przeciwieństwie do promes, które zwracają jedną wartość, observable może emitować zero, jedną lub wiele wartości w czasie.

Kluczowe cechy:

  • Leniwe: Strumień zaczyna działać tylko po subskrypcji.
  • Anulowalne: Można odsubskrybować od strumienia, aby zatrzymać jego działanie i zwolnić zasoby.
  • Wiele wartości: Może emitować wiele wartości, podczas gdy promisy rozwiązują się tylko raz.

Główne komponenty:

  • Observable: Sam strumień danych.
  • Observer: Obiekt z metodami next, error i complete, które są wywoływane przez observable.
  • Subscription: Wynik subskrypcji na observable, pozwala na odsubskrybowanie.
  • Operatory: Funkcje, które przekształcają lub łączą observable (np. map, filter, merge).

Przykład użycia (RxJS):

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

const source = of(1, 2, 3); // Tworzymy observable emitujące 1, 2, 3

const example = source.pipe(map(x => x + 1)); // Używamy operatora map

const subscription = example.subscribe({ // Subskrybujemy observable
  next: value => console.log(`Next: ${value}`), // Obsługa każdego wartości
  error: err => console.error(`Error: ${err}`), // Obsługa błędów
  complete: () => console.log('Complete!') // Wywoływane po zakończeniu
});

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

// subscription.unsubscribe(); // Można odsubskrybować