<RxJava>Concat

진섭·2023년 6월 3일
0

RxJava

목록 보기
18/20
post-thumbnail

📌 Concat 연산자란?

두 개 이상의 Observable들이 항목을 발행할 때 Observable 순서대로 배출하는 항목들을 하나의 Observable 배출로 연이어 배출한다. concat 연산자는 옵저버블들을 순차적으로 처리하고 싶을 때 유용하게 사용될 수 있습니다.

📌 Concat 사용법

Observable 2개를 만들어 1 ~ 100 , 101 ~ 150 까지 Concat을 이용해 연결을 해보도록 하겠습니다.

  • getNum1To100(), getNum101To150() 함수는 .range()를 사용해 각각 숫자를 생성하고 Observable를 생성하고 반환합니다.
  • concat() 함수는 getNum1To100() 함수와 getNum101To150() 함수를 호출하여 반환되는 두 개의 옵저버블을 Observable.concat() 연산자를 사용하여 연결한 후, 이를 반환합니다.
  • MainActivity에서 concat 함수를 호출해 subscribe 함수를 사용하여 옵저버블을 구독하고, 항목에 대한 처리를 수행합니다
class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
   		concat()
            .subscribe(
                {
                    Log.d("concat", "onNext : ${it}")
                },
                {
                    Log.d("concat", "onError ${it}")
                },
                {
                    Log.d("concat", "1 ~ 150까지")
                }
            ).let { _ -> }

    }
}

fun getNum1To100(): Observable<Int> {
    return Observable.range(1, 100)
}

fun getNum101To150(): Observable<Int> {
    return Observable.range(101, 50)
}

fun concat(): Observable<Int> {
    return Observable.concat(getNum1To100(), getNum101To150())
}
profile
Android 개발자

0개의 댓글