ReactiveX

[RxJava] Single, Maybe

smomo 2021. 5. 1. 10:14

Single

Single은 Obvservable의 한 형태이지만, 항상 한 가지 값 또는 오류 알림 둘 중 하나만 배출한다.

Single을 구독할 때는 Observable을 구독할 때 사용하는 세 개의 메서드(onNext, onError, onCompleted) 대신

다음의 두 메서드만 사용할 수 있다. 

  • onSuccess

 - Single은 자신이 배출하는 하나의 값을 이 메서드를 통해 전달한다.

  • onError

 - Single은 항목을 배출할 수 없을 때 이 메서드를 통해 Throwable 객체를 전달한다.

 

Single은 발행과 동시에 종료하며 종료시 onSuccess가 호출된다.

Observable과 마찬가지로, Single도 다양한 연산자들을 제공한다.

이 중 어떤 연산자들은 Observable과 Single을 섞어서 사용할 수 있도록

Observable의 영역과 Single의 영역을 연결하는 인터페이스 역할을 수행한다.

Maybe

Single과 마찬가지로 최대 데이터 하나만 가질 수 있지만 데이터 발행없이 데이터 발생을 완료할 수 있으며

onSuccess, onError, onComplete 메소드를 사용할 수 있다.

Maybe 객체는 Maybe 클래스로 생성할 수 있지만 보통 Observable의 특정 연산자를 통해 객체 생성할 때가 많다.

 

References

유동환, 박정준, 리액티브 프로그래밍 기초부터 안드로이드까지 한번에, 한빛미디어