Вы могли бы flatMap
их, и использовать его ответ в следующем, используя параметр it
, который является ответом предыдущего.
mathApi.multiplyByTwo(1)
.flatMap {
mathApi.multiplyByTwo(it)
}.flatMap {
mathApi.multiplyByTwo(it)
}.subscribe {
// here "it" will be 4 (1*2*2)
}
И в случае, если вы не 'не знаю, сколько у вас будет flatMap
с, например, вы можете сделать это с помощью рекурсивной функции.
private fun multiplyByTwo(number: Int) {
mathApi.multiplyByTwo(number).subscribe {
if (it < Integer.MAX_VALUE) { // When you run out of data.
multiplyByTwo(it)
}
}
}