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,erroricomplete, 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ć