如何一一处理单声道列表?
How to process list of monos one by one?
我有一个清单
List<Tuple3<Object1, Mono<List<Object2>>, Mono<List<Object3>>>>
我需要写一个签名为
的方法
private Mono<Dto> buildDto(List<Tuple3<Object1, Mono<List<Object2>>, Mono<List<Object3>>>> tuples) {...}
如何逐一跟踪 tuples
列表中的所有项目以获得 Object1、Object2、Object3 的值而不跳过其中任何一个?
我尝试执行
AtomicReference<Dto> dtoAtomic = new AtomicReference<>(buildEmptyDto());
return tuples.stream()
.map(tuple3 -> {
return Mono.zip(tuple3.getT2(), tuple3.getT3(),
(object2, object3) -> {
Dto dto = dtoAtomic.get();
dtoAtomic.set(dto);
return dto;
});
})
.collect(Collectors.toList())
.stream()
.findFirst()
.orElse(Mono.just(dtoAtomic.get()))
但是只能得到一个Mono.zip(...) 但是我需要得到所有的元组
使用Flux.fromIterable(tuples)
解决
我有一个清单
List<Tuple3<Object1, Mono<List<Object2>>, Mono<List<Object3>>>>
我需要写一个签名为
的方法private Mono<Dto> buildDto(List<Tuple3<Object1, Mono<List<Object2>>, Mono<List<Object3>>>> tuples) {...}
如何逐一跟踪 tuples
列表中的所有项目以获得 Object1、Object2、Object3 的值而不跳过其中任何一个?
我尝试执行
AtomicReference<Dto> dtoAtomic = new AtomicReference<>(buildEmptyDto());
return tuples.stream()
.map(tuple3 -> {
return Mono.zip(tuple3.getT2(), tuple3.getT3(),
(object2, object3) -> {
Dto dto = dtoAtomic.get();
dtoAtomic.set(dto);
return dto;
});
})
.collect(Collectors.toList())
.stream()
.findFirst()
.orElse(Mono.just(dtoAtomic.get()))
但是只能得到一个Mono.zip(...) 但是我需要得到所有的元组
使用Flux.fromIterable(tuples)