当前位置: 首页 > 知识库问答 >
问题:

在Spring Boot中使用Mono迭代Flux和concat

秦诚
2023-03-14

我确实有一个getch就业()方法,它成功地获取记录,我正在迭代它,以获取基于工人id的Mono对象,成功地返回对象,但我不能创建最终的通量,它应该包括的WorkerDTO(正常Spring Boot应用程序的WorkerDTO列表),但它返回空对象i. e[]

  @Override
  public Flux<WorkerDTO> method() {
    
   Flux<EmployeeDTO> employmentDTOFlux = fetchEmployment();
   Flux<WorkerDTO> workerDTOFlux = Flux.empty();

   employmentDTOFlux.flatMap(employmentDTO -> {
     Mono<WorkerDTO> worker = workerService.findWorkerById(employmentDTO.getWorkerId());
     return Flux.concat(workerDTOFlux, Flux.from(worker));
   });

   return workerDTOFlux;

  }

共有1个答案

周子平
2023-03-14

我认为您可以将其改写为以下简单内容:

return fetchEmployment()
       .map(EmployeeDTO::getWorkerId)
       .map(workerService::findWorkerById);
 类似资料:
  • 我有一个应该向用户发送电子邮件的用例。首先,我创建电子邮件正文。 然后我选择用户并向他们发送电子邮件: 我不喜欢什么 没有cache()方法,emailBody Mono会在每个迭代步骤中进行计算 要获得emailBody值,我使用emailBody。block(),但可能有一种反应方式,而不是在通量流中调用block方法

  • 我写了一个@Aspect来拦截以Mono/Flux返回值的被动方法。使用@AfterReturning advice,我试图通过调用webservice发出APNS通知。 不幸的是,processNotification Mono服务在没有执行调用链的情况下立即返回onComplete信号。下面是我的示例程序。 我们如何在不等待侦听的情况下异步触发此调用。。目前,processNotificati

  • 我有这个场景。我有一个分页的API,它给我过去12个月的数据。API的响应是这样的: 现在我必须收集所有的数据,然后计算所有的总和,并返回为

  • 例如,如果我同时调度一个包含3个异步调用的列表,那么以下面的方式应用map操作会阻塞吗? 在上面的片段中,每个map操作都要阻塞吗?假设第一个呼叫需要5毫秒才能返回,其他每一个呼叫需要2毫秒才能返回,我们是否要等待3ms+2ms+2m=7ms来执行enitre操作?或者只有3ms,因为一旦第一个调用得到解析,那么2ms的调用就已经解析了。

  • 我是Spring5的新手。 1)如何记录Mono和flux类型的方法参数而不阻塞它们? 编辑1:我有这个命令式代码,我正在尝试转换成一个反应代码。由于在论证中引入了Mono,目前存在编译问题。

  • 问题内容: 对反应式编程感兴趣,我玩了《构建反应式RESTful Web服务》指南。并希望转移前途并添加一些单元测试。 我尝试使用普通的Junit / Mockito测试来测试我的处理程序()。但是,由于它是反应性的,因此处理程序将返回。所以我不得不用它来测试状态,但是无法抽出他的身体来测试它。在网络上搜索解决方案时,似乎所有示例都使用。 我的问题是: 鉴于所有示例都用于测试反应性REST服务,并