Итак, Project Reactor предоставляет несколько методов для регистрации полученных результатов:
Вы можете увидеть, как это работает.
Пример кода:
Flux<String> stringFlux = Flux.just("one", "two", "three")
.doOnNext(s -> System.out.println("On next: " + s));
Mono<String> stringMono = Mono.just("four");
stringFlux = stringFlux.concatWith(stringMono)
.map(s -> s + " hundred")
.log();
stringFlux.subscribe(s -> System.out.println("On next subscriber: " + s));
Результат:
15:32:18.984 [main] INFO reactor.Flux.Map.1 - onSubscribe(FluxMap.MapSubscriber)
15:32:18.986 [main] INFO reactor.Flux.Map.1 - request(unbounded)
On next: one
15:32:19.005 [main] INFO reactor.Flux.Map.1 - onNext(one hundred)
On next subscriber: one hundred
On next: two
15:32:19.005 [main] INFO reactor.Flux.Map.1 - onNext(two hundred)
On next subscriber: two hundred
On next: three
15:32:19.005 [main] INFO reactor.Flux.Map.1 - onNext(three hundred)
On next subscriber: three hundred
15:32:19.006 [main] INFO reactor.Flux.Map.1 - onNext(four hundred)
On next subscriber: four hundred
15:32:19.007 [main] INFO reactor.Flux.Map.1 - onComplete()
Первое сообщение было написано с doOnNext
из stringFlux
, после этого log
изКомбинированные издатели и последний subscribe
.
PS Также вы можете регистрировать другие события, такие как OnError, OnComplete и т. д.