#flux #project-reactor
#поток #проект-реактор
Вопрос:
Я поиграл с API flux от Reactor. Я уже знаком с RxJava, поэтому я хотел протестировать Reactor Flux. Я не понимаю, почему я всегда получаю 0 в следующем коде:
Flux.create(e -> {
long current = 1;
while (!e.isCancelled()) {
e.next(current);
current *= 2;
}
})
.subscribe(l -> System.out.println("Got " l " on " Thread.currentThread().getName()), e -> System.out.println(e.getMessage() "!!!!"), () -> System.out.println("finished"));
Когда я запустил код, я получаю бесконечные строки, показывающие
«Получено 0 на главном»
Ответ №1:
У вас длительное переполнение. Измените свой блок while на
while (!e.isCancelled()) {
if (current < 0) {
e.complete();
} else {
e.next(current);
current *= 2;
}
}