본문 바로가기
Android 개발/RxJava, RxAndroid

RxJava ignoreElements() 연산자에 대한 이해

by Developer88 2024. 10. 30.
반응형

오늘은 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

댓글