Junior — Middle
Czym różnią się typy danych Single i Observable w bibliotece RxJava?
sobes.tech AI
Odpowiedź od AI
W RxJava typy Single i Observable różnią się pod względem ilości i charakteru emitowanych elementów:
-
Observable może emitować dowolną liczbę elementów (0, 1 lub wiele), a także kończyć się sukcesem lub błędem. Nadaje się do strumieni danych, w których oczekuje się kilku wartości w czasie.
-
Single gwarantuje emisję dokładnie jednego elementu lub błędu. Jest przydatny dla operacji, które zwracają pojedynczy wynik, np. zapytanie do sieci lub bazy danych.
Przykład użycia Single:
Single<String> single = Single.just("Cześć");
single.subscribe(
item -> System.out.println("Otrzymano: " + item),
error -> System.err.println("Błąd: " + error)
);
Observable może wyglądać tak:
Observable<Integer> observable = Observable.just(1, 2, 3);
observable.subscribe(
item -> System.out.println("Otrzymano: " + item),
error -> System.err.println("Błąd: " + error),
() -> System.out.println("Zakończono")
);