이번 글에서는 Observable이 전달하는 데이터를 변형하는 Operator에 대해 이야기 합니다.
데이터를 변형하는 Operator는 아래와 같이 있습니다.
데이터를 바로 전달하지 않고 buffer size만큼 모일 때 까지 기다렸다가 한번에 List형태로 전달하는 operator 입니다.
fun main() {
val observable = Observable.interval(1000, TimeUnit.MILLISECONDS)
.buffer(2)
observable.subscribe({
// onNext로 전달 된 데이터 출력
println(it)
}, {
// 에러 처리
it.printStackTrace()
}, {
// 완료 이벤트
println("onComplete")
})
Thread.sleep(10000)
}
Observable에서 데이터를 받아 새로운 Observable을 만드는 operator 입니다.
fun main() {
val observable = Observable.just(1, 2, 3)
.flatMap { Observable.just("$it Hello", "$it World") }
observable.subscribe({
// onNext로 전달 된 데이터 출력
println(it)
}, {
// 에러 처리
it.printStackTrace()
}, {
// 완료 이벤트
println("onComplete")
})
}
특정 규칙에 따라 데이터를 그룹화 시켜서 새로운 Observable을 만드는 operator입니다. Observable<GroupedObservable<K, T>>를 리턴 합니다.
fun main() {
val observable = Observable.fromIterable(0..9)
.groupBy { it % 3 }
observable.subscribe({
// onNext로 전달 된 데이터 출력
println("key: ${it.key} $it")
}, {
// 에러 처리
it.printStackTrace()
}, {
// 완료 이벤트
println("onComplete")
})
}
데이터를 특정 규칙에 따라 변환하는 operator 입니다.