【发布时间】:2022-01-22 15:17:42
【问题描述】:
我确实有一个 fetchEmployment() 方法可以成功获取记录,我正在迭代它以根据成功返回对象的工作人员 ID 获取 Mono 对象,但我无法创建最终的Flux,它应该由WorkerDTO(普通Spring Boot应用程序的WorkerDTO列表)组成,但它返回空对象,即@987654323 @。
@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;
}
【问题讨论】:
-
你的 workerDTOFlux 是
Flux.empty()并且你永远不会重新分配值,即你得到一个空数组。 -
你在
flatMap那里尝试的任何东西都是没有意义的。 -
而
employmentDTOFlux.flatMap永远不会被执行,因为它永远不会被订阅,另见stackoverflow.com/questions/70569881/… -
你好@adnan_e,你能建议我应该改变什么吗?
标签: java spring spring-boot spring-webflux