Flux не генерирует элементы

#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;
    }
}