하나의 Observable이 발행하는 항목들을 여러개의 Observable로 변환하고, 항목들의 배출을 차례차례 줄 세워 하나의 Observable로 전달한다. FlatMap연산자를 사용하면 스트림의 각 항목을 비동기적으로 처리하고, 각 변환 결과를 결합하여 새로운 옵저버블로 발행할 수 있습니다.
1부터 3까지의 숫자를 발행하고, flatMap을 사용하여 각 숫자를 2배, 3배로 변환한다.
Observable.range(1, 3)
.flatMap { number -> Observable.just(number, number * 2, number * 3) }
.subscribe { result -> println(result) }
.let { }
1
2 변환
3 변환
2
4 변환
6 변환
3
6 변환
9 변환