Java 从完成通量返回计算的Mono

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

我是SpringWebFlux新手,在将流量聚合到Mono时遇到了问题

ProductController有一个方法
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
完成了这项任务。如果你发布一个答案,我会接受它作为解决方案。