본문 바로가기

프로그래밍/RxJava

[RxJava] Single 클래스

Single 클래스는 RxJava 1.x부터 존재하는 Observable의 특수한 형태이다.

Observable 클래스는 데이터를 무한하게 발행할 수 있지만

Single 클래스는 오직 1개의 데이터만 발행이 가능하다.

 

보통 결과가 유일한 서버 API를 호출할 때 유용하게 사용할 수 있다.

Single 클래스의 마블 다어그램은 아래와 같다.

Single 클래스 마블 다이어그램

여기서 제일 중요한 점은 데이터 하나가 발행과 동시에 종료(onSuccess)된다는 점이다.

라이프 사이클 관점에서 보면, onNext()와 onComplete() 함수가 onSuccess()로 통합되었다고 보면된다.

따라서 Single 클래스의 라이프 사이클 함수는 onSuccess(T value) 함수와 onError() 함수로 구성되어 있다.