Domain/ReactiveX

[ReactiveX] Maybe

by Donghwan 2021. 4. 29.

Observable의 또 다른 특수 형태입니다. 영어의 ‘maybe’는 ‘아마도’라는 뜻입니다. 이 뜻처럼 Single 클래스와 마찬가지로 최대 데이터 하나를 가질 수 있지만 데이터 발행 없이 바로 데이터 발생을 완료(Single 클래스는 1개 완료, Maybe 클래스는 0 혹은 1개 완료)할 수도 있습니다. 즉, Maybe 클래스는 Single 클래스에 onComplete 이벤트가 주가된 형태입니다.

/는 onSuccess 이벤트, x는 onError 이벤트, |는 onComplete 이벤트에 해당합니다.

  • onSubscribe(d: Disposable)
    Maybe가 데이터를 전달 할 준비가 되면 이 함수를 호출합니다.
    Maybe와 연결을 취소할 수 있는 Disposable을 파라미터로 전달합니다.
  • onSuccess(t: T)
    Maybe가 데이터를 전달 할 때 이 함수를 호출합니다.
    데이터에 대한 처리합니다.
    이 함수가 호출되면 Maybe가 완료된 것을 의미합니다.
  • onError(e: Throwable)
    Maybe가 에러를 전달 할 때 이 함수를 호출합니다.
    이 함수에서 에러를 받아서 처리하면 됩니다.
    이 함수가 호출되면 Maybe가 완료된 것을 의미합니다.
  • onComplete()
    이 함수가 호출되면 Maybe가 완료된 것을 의미합니다.

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

또한 Maybe 객체를 생성할 수 있는 리액티브 연산자에는 elementAt(), firstElement(),
flatMapMaybe(), lastElement(), reduce(), singleElement()가 있습니다.

728x90
반응형

'Domain > ReactiveX' 카테고리의 다른 글

[ReactiveX] ConnectableObservable  (0) 2021.04.29
[ReactiveX] Subject  (0) 2021.04.29
[ReactiveX] Cold Observable Vs Hot Observable  (0) 2021.04.29
[ReactiveX] Single  (0) 2021.04.29
[ReactiveX] Observable  (0) 2021.04.29

댓글