首页 > 解决方案 > 如何避免 .flatMap(x-> reactiveAction(x).thenReturn(x))

问题描述

在使用项目反应器库在 Java 中进行一些反应式编程期间,我偶然发现了一种模式,我想知道是否有现成的支持?

所以我想要下面的代码:

Mono.just("hello")
    .flatMap(hello -> reactiveAction(hello).thenReturn(hello))
    ..
    .;

变成类似的东西:

Mono.just("hello")
    .coolOperation(this::reactiveAction)
    ..
    .;   

我不能使用 doOnNext 因为我想在 reactiveAction 中做的不是副作用。反应行动是:

Mono<Integer> reactiveAction(String text){
  return ....
}

标签: javamonoreactive-programmingproject-reactorpublisher

解决方案


你考虑过Mono#delayUntil吗?

Mono.just("hello")
    .delayUntil(hello -> reactiveAction(hello))
    ..
    .;

推荐阅读