Mono:flatMap 加载另一个项目然后 return 原始项目
Mono: flatMap to load another item then return original item
我刚开始使用 Spring Webflux,我想知道以下调用是否是在反应流中加载其他项目的好方法,以及是否可能有另一个运算符可以简化此调用:
Mono<Foo> fooMono = fooService.loadFoo();
fooMono.flatMap(foo -> barService.loadBarForFoo(foo).flatMap(bar -> Mono.just(foo)))
例如:fooMono
可能是通过 WebClient
加载的内容,而 barService.loadBarFromFoo
知道如何加载 Bar
给定的 Foo
然后将 bar
插入 foo
。最后我想让 foo
回来执行更多操作,比如将另一个资源加载到 foo
.
最后从 foo
创建一个新的 Mono 是好的做法还是可能有另一个运算符可以用来简化这个?
您好,如果您不需要使用 loadBarForFoo
方法的结果,您可以使用 thenReturn
。
fooMono.flatMap(foo -> barService.loadBarForFoo(foo).thenReturn(foo));
我刚开始使用 Spring Webflux,我想知道以下调用是否是在反应流中加载其他项目的好方法,以及是否可能有另一个运算符可以简化此调用:
Mono<Foo> fooMono = fooService.loadFoo();
fooMono.flatMap(foo -> barService.loadBarForFoo(foo).flatMap(bar -> Mono.just(foo)))
例如:fooMono
可能是通过 WebClient
加载的内容,而 barService.loadBarFromFoo
知道如何加载 Bar
给定的 Foo
然后将 bar
插入 foo
。最后我想让 foo
回来执行更多操作,比如将另一个资源加载到 foo
.
最后从 foo
创建一个新的 Mono 是好的做法还是可能有另一个运算符可以用来简化这个?
您好,如果您不需要使用 loadBarForFoo
方法的结果,您可以使用 thenReturn
。
fooMono.flatMap(foo -> barService.loadBarForFoo(foo).thenReturn(foo));