Я относительно новичок в программировании Spring WebFlux и Reactive вообще, поэтому прошу прощения за мой вопрос, это не имеет никакого смысла.
У меня есть простой метод @PostMapping, который я пытаюсь сопоставить поле в Mono с другим методом цепочки, таким образом:
@PostMapping
public Mono<Delay> getPlanetNames(@RequestBody Mono<Delay> delayBody) {
return delayBody
.map(p -> new Delay(p.getDelayTime(), getRandomPlanetName()))
.delayElement(Duration.ofMillis(50));
}
public String getRandomPlanetName() {
Random rand = new Random();
List<String> list = Stream.of(
"Mercury",
"Neptune")
.collect(Collectors.toList());
return list.get(rand.nextInt(list.size()));
}
По сути, я хочу, чтобы вернутьновое имя планеты с помощью «getRandomPlanetName ()» и в то же время установка «delayElement» с полем в объекте «Задержка».Примерно так:
@PostMapping
public Mono<Delay> getPlanetNames(@RequestBody Mono<Delay> delayBody) {
return delayBody
.map(p -> new Delay(p.getDelayTime(), getRandomPlanetName()))
.delayElement(Duration.ofMillis(delayBody.getDelayTime));
}
Кроме того, могу ли я вернуть только String, которая является результатом getPlanetName () вместо Mono объекта?