Maybe
1.개념
Maybe도 Observable의 또 다른 형태이다. Maybe는 최대 데이터 하나를 발행할 수 있으며 추가로 데이터 없이도 완료할 수도 있다.
Single에 onComplete가 추가된 형태로, 총 3가지 알림을 보낸다.
- onSuccess : 데이터 하나를 발행함과 동시에 종료
- onError : 에러가 발생했음을 알림
- onComplete : 데이터 발행이 완료됐음을 알림
2. 예제
Maybe도 Observable이나 Single과 같이 just와 create 연산자가 존재한다.
예제에서는 create를 통해 Maybe를 생성하였다.
Maybe.create(new MaybeOnSubscribe<String>() {
@Override
public void subscribe(@NonNull MaybeEmitter<String> emitter) throws Throwable {
emitter.onSuccess("Maybe 1");
emitter.onSuccess("Maybe 2");
emitter.onComplete();
}
}).subscribe(new Consumer<String>() {
@Override
public void accept(String s) throws Throwable {
System.out.println("onSuccess : "+s);
}
}, new Consumer<Throwable>() {
@Override
public void accept(Throwable throwable) throws Throwable {
}
}, new Action() {
@Override
public void run() throws Throwable {
System.out.println("complete");
}
});
Result:
onSuccess : Maybe 1 // 최대 1개
Maybe는 최대 데이터 1개를 발행하므로 여러 개의 데이터를 전달해도 단 하나의 데이터만 발행되고 종료됨을 볼 수 있다. 또한 onSuccess가 데이터를 발행함과 동시에 종료되므로 이후에 나온 onComplete는 실행되지 않는다.
관련 글: Maybe, Single, Completable
2022.06.13 - [Programming Android[Java]] - [RxJava] Completable 개념 이해
'Programming 개발은 구글로 > JAVA[Android]' 카테고리의 다른 글
[안드로이드] @NonNull & @Nullable 이해 (0) | 2022.06.14 |
---|---|
[RxJava] Completable 개념 이해 (0) | 2022.06.13 |
[안드로이드] Caused by: java.lang.AssertionError: Could not delete caches dir yourProject\build\kotlin\compileDebugTestingKotlin 에러 (0) | 2022.06.11 |
[안드로이드][활용] 비즈니스 계정으로 게시물 가져오기 (0) | 2022.06.09 |
[RxJava] Single 개념 이해 (0) | 2022.06.05 |
댓글