일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 테스트의 장점
- 깃
- dagger2
- 코틀린
- 파이썬
- Kotlin
- git
- MVVM
- Jetpack
- Room
- 안드로이드 디자인패턴
- 코딩테스트
- 유닛테스트
- 제한함수
- 컴포즈
- UnitTest
- 자료구조
- Python
- mock
- rxjava
- compose
- Observable
- 공격적 프로그래밍
- 안드로이드
- Android
- 안정성
- 디자인패턴
- 단위테스트
- ViewModel
- Di
Archives
- Today
- Total
세상을 바꾸는 개발자
[RxJava] 다양한 Observable의 형태 ( Maybe ) 본문
안녕하세요 헬창코딩입니다.
이번에는 Maybe에 대해서 알아보도록 하겠습니다.
Maybe는 Single과는 비슷하지만 아이템을 발행하거나 발행하지 않을 수도 있다는 점에서 차이가 있습니다.
아이템을 발행할 때는 onSuccess(T)를 호출하고, 발행하지 않을 때는 onComplete()를 호출합니다.
그러므로 onSuccess()를 호출하는 경우 onComplete()를 호출할 필요는 없습니다.
Maybe.create(emitter -> {
emitter.onSuccess(100);
emitter.onComplete(); //무시된다
})
.doOnSuccess(item -> Log.d("log_test", "doOnSuccess::" + item))
.doOnComplete(() -> Log.d("log_test", "Complete"))
.subscribe(t -> Log.d("log_test", "" + t));
Maybe.create(emitter -> emitter.onComplete())
.doOnSuccess(item -> Log.d("log_test", "doOnSuccess::" + item))
.doOnComplete(() -> Log.d("log_test", "Complete_2"))
.subscribe(t -> Log.d("log_test", "" + t));
결과
그리고 몇 가지 Observable 연산자는 반환 타입을 Maybe로 변환합니다.
Observable<Integer> data1 = Observable.just(1, 2, 3);
Maybe<Integer> maybe1 = data1.firstElement();
maybe1.subscribe(t -> Log.d("log_test", "" + t));
Observable<Integer> data2 = Observable.empty();
Maybe<Integer> maybe2 = data2.firstElement();
maybe2.subscribe(t -> Log.d("log_test", ""), throwable -> {
}, () -> Log.d("log_test", "onComplete"));
결과
'안드로이드 > RxJava' 카테고리의 다른 글
[RxJava] Cold Observable과 Hot Observable의 차이 (0) | 2021.08.26 |
---|---|
[RxJava] 다양한 Observable의 형태 ( Completable ) (0) | 2021.08.26 |
[RxJava] 다양한 Observable의 형태 ( Single ) (0) | 2021.08.24 |
[RxJava] Observable로 변환하기(fromArray, fromIterable, fromFuture, fromPublisher, fromCallable) (0) | 2021.08.23 |
[RxJava] just() 연산자 (0) | 2021.08.23 |
Comments