Java 从完成通量返回计算的Mono
我是SpringWebFlux新手,在将流量聚合到Mono时遇到了问题 ProductController有一个方法Java 从完成通量返回计算的Mono,java,spring,spring-webflux,reactor,Java,Spring,Spring Webflux,Reactor,我是SpringWebFlux新手,在将流量聚合到Mono时遇到了问题 ProductController有一个方法Flux get(列表ID)返回给定ID列表的产品流。当所有产品都已提取时,通量完成 聚合器获取产品列表,从流中计算新的ProductAggregateDTO,并将其发送到accountingService,accountingService随后处理这些产品,并将UUID分配给会计流程 class Aggregator { Mono<UUID> process(Li
Flux get(列表ID)
返回给定ID列表的产品流。当所有产品都已提取时,通量完成
聚合器获取产品列表,从流中计算新的ProductAggregateDTO,并将其发送到accountingService,accountingService随后处理这些产品,并将UUID分配给会计流程
class Aggregator {
Mono<UUID> process(List<UUID> ids) {
ProductAggregateDTO adto = new ProductAggregateDTO();
productAdapter.getProducts(ids)
.doOnNext(e -> {
adto.consume(e);
})
.doOnComplete(() -> {
Mono<UUID> processId = accountAdapter.process(adto);
})
.subscribe();
}
}
类聚合器{
单进程(列表ID){
ProductAggregateDTO adto=新ProductAggregateDTO();
productAdapter.getProducts(ID)
.doOnNext(e->{
adto.消费(e);
})
.doOnComplete(()->{
Mono processId=accountAdapter.process(adto);
})
.subscribe();
}
}
我想从process函数返回processId。我认为这不是什么大问题。但是我找不到怎么做
谢谢你的帮助
亲切问候,,
Andreas请注意,您的代码将更易于阅读,因为
.doOnNext(adto::consume)
。使用then
操作符代替doOnComplete
。感谢您的帮助,then
完成了这项任务。如果你发布一个答案,我会接受它作为解决方案。