#kotlin #project-reactor
#kotlin #проект-реактор
Вопрос:
Используя последовательности Kotlin, мы можем сделать что-то вроде этого.
val seq = generateSequence(0) { it 1 }
seq.take(4).subscripe() { println(it) }
Это вычислит новую последовательность, содержащую четыре значения, начиная с начального значения.
Я ищу способ добиться того же, используя поток реактора. Вычисление последовательности на основе начального значения. Но я только что нашел что-то для создания статической последовательности val f = Flux.just(0, 1, 2, ...)
Ответ №1:
Вы можете использовать reactor-kotlin-extensions
library для преобразования последовательности Kotlin в a Flux
так же просто, как:
import reactor.kotlin.core.publisher.toFlux
// ...
generateSequence(0) { it 1 }.toFlux().take(4).subscribe { println(it) }
Если вы хотите то же самое, используя только реактор:
Flux.generate<Int, Int>({0}, { curr, sink -> sink.next(curr); curr 1 })
.take(4)
.subscribe { println(it)}