Я относительно новичок в реактивном программировании. Мой вопрос касается Mono::then
Что я хочу сделать, это извлечь тело из входящего запроса, установить его в переменную stati c. Как только это будет сделано, отправьте ответ о том, что служба запущена. Но следующий код всегда возвращает «Служба запущена для: null».
Я думал, что Mono::then
должен запуститься после завершения первого моно (в данном случае после установки переменной stati c) и вернуть «Служба» началось для: a, b, c ".
Неужели мое понимание неверно?
(Также приветствуется любая критика кода)
public Mono<ServerResponse> getStatus(ServerRequest req) {
Mono<List<Request>> body = req.bodyToFlux(Request.class).collectList();
return ServerResponse.ok()
.body(body.doOnNext(i -> {
Service.a = i;
logger.info("Service started for : {}", i.toString());
})
.then(Mono.just("Service started for: " + Service.a)), String.class);
}