두 개 이상의 Observable들이 항목을 발행할 때 Observable 순서대로 배출하는 항목들을 하나의 Observable 배출로 연이어 배출한다. concat 연산자는 옵저버블들을 순차적으로 처리
하고 싶을 때 유용하게 사용될 수 있습니다.
Observable 2개를 만들어 1 ~ 100 , 101 ~ 150 까지 Concat을 이용해 연결을 해보도록 하겠습니다.
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())
}