Различия между flatMap, switchMap и concatMap в RxJava
Условие задачи
Опишите для каждого варианта что будет в выводе, если заменить (method) на: flatMap, switchMap, concatMap в данном коде
kotlinval list = mutableListOf("a", "b", "c", "d")
val couter = AtomicInteger(4)
Observable.fromIterable(list). (method) { item ->
val delay = couter.decrementAndGet() × 10
Observable.just(item + "x").delay(delay.toLong(), TimeUnit.SECONDS)
}
.doOnNext { println(it) }
.subscribe()
flatMap:
1. "ax", "bx", "cx", "dx"
2. "dx", "cx", "bx", "ax"
3. "bx", "cx", "ax", "dx"
ответ {
второй
}
switchMap:
1. "ax", "bx", "cx", "dx"
2. "dx", "cx", "bx", "ax"
3. "dx"
ответ {
третий
}
concatMap:
1. "dx"
2. "dx", "cx", "bx", "ax"
3. "ax", "bx", "cx", "dx"
ответ {
третий
}