Sobes.tech
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")
);