Android 개발/RxJava, RxAndroid
RxJava ignoreElements() 연산자에 대한 이해
Developer88
2024. 10. 30. 18:04
반응형
오늘은 RxJava의 연산자 중,
ignoreElements()에 대해서 알아보겠습니다.
1. ignoreElements()
연산자 이름만 보면 이해하기가 쉬운데요.
Observable 에서 흘러나오는,
데이터를 모두 무시하는 연산자입니다.
그런데, 그냥 무시할꺼면 왜 사용할까요?
흘러나오는 데이터가 필요없기 때문입니다.
단순히 완료 되었는지,
또는 오류가 발생했는지만,
알고 싶을 때 사용합니다.
ignroeElements()를 사용해 주면,
원래의 Observable이 Completable로 변환되는데요.
Completable은,
onComplete 또는 onError 이벤트만 발생시키는,
특별한 유형의 Observable입니다.
Observable<Integer> numbers = Observable.range(1, 5);
numbers.ignoreElements()
.subscribe(
() -> System.out.println("Completed!"),
error -> System.out.println("Error: " + error)
);
위 코드에서는,
Observable에서 어떤 값이 흘러나오더라도,
완료와 에러만 받아서 subscribe해 주면 됩니다.
2. 예제 코드
좀 더 실용적인 예제코드를 보면서 이를 더 이해해 보겠습니다.
아래는 안드로이드에서 사용된 Java 코드인데요.
진행순서는 다음과 같습니다.
- RoomDB에 insert()를 실행 (TestDao.insert())
- andThen()연산자가 순차적으로 실행되도록 함
- ignoreElements가 Completable을 방출해 줍니다.
- onComplete와 onError에 대해서 구독(subscribe)
Completable.fromAction(() -> TestDao.insert(mAlarmSettingData))
.andThen(TestUtil.doSomething()
.ignoreElement())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(
() -> Log.d("Test", "test has been successful"),
throwable -> Log.e("Test", "Error while testing", throwable)
)
이상으로 RxJava의 ignoreElement()에 대해서 알아보았습니다.
728x90