본문 바로가기
Programming 개발은 구글로/JAVA[Android]

[RxJava] 3.Observable 란?

by 40대직장인 2022. 5. 29.

Observable

 

Observable은 데이터 흐름에 맞게 알림을 보내 구독자가 데이터를 처리할 수 있도록 한다.


Observable은 옵서버 패턴을 구현하며, 리액티브 프로그래밍은 Observable로 시작해서 Observable로 끝난다고 해도 과언이 아니다.


안드로이드에서 버튼을 클릭하면 이벤트를 받을 수 있게 하는 OnClickListener가 대표적인 옵서버 패턴의 예라고 볼 수 있다.
 
RxJava에서 Observable은 세 가지를 구독자에게 전달한다.

  • onNext : Observable이 데이터의 발행을 알린다. 기존의 옵서버 패턴과 같다
  • onComplete : 모든 데이터가 발행이 완료되었음을 알린다. 그러므로 더 이상의 onNext는 발생하지 않으며, 마지막에 딱 한 번만 호출된다.
  • onError : Observable에서 어떤 이유로 에러가 발생했음을 알린다. onError 이벤트가 발생하면 이후에 onNext 및 onComplete 이벤트가 발생하지 않는다. 즉 Observable의 실행을 종료한다.

Observable 클래스에는 옵저버블 객체를 생성하는 팩토리함수, 중간결과를 처리하는 함수, 디버그 및 예외 처리 함수가 모두 포함되어 있다.


Observable을 생성할 때는 인스턴스를 직접 만들지 않고 정적 팩토리 함수를 호출한다.

 

팩토리 함수 함수
RxJava 1.x 기본 팩토리 함수 create(), just(), from()
RxJava 2.x 추가 팩토리 함수 fromArray(), fromIterable(), fromCallable(), fromFuture(), fromPublisher()
기타 팩토리 함수 interval(), range(), timer(), defer() 등

 

 

 

 


원문: Observable
https://reactivex.io/documentation/observable.html

 

 

 

 

 

댓글