Bas*_*uis 3 spring project-reactor reactive
使用弹簧5,使用反应器,我们有以下需要.
Mono<TheResponseObject> getItemById(String id){
return webClient.uri('/foo').retrieve().bodyToMono(TheResponseObject)
}
Mono<List<String>> getItemIds(){
return webClient.uri('/ids').retrieve().bodyToMono(List)
}
Mono<RichResonseObject> getRichResponse(){
Mono<List> listOfIds = Mono.getItemIds()
listOfIds.each({ String id ->
? << getItemById(id) //<<< how do we convert a list of ids in a Mono to a Flux
})
Mono<Object> someOtherMono = getOtherMono()
return Mono.zip((? as Flux).collectAsList(), someOtherMono).map({
Tuple2<List, Object> pair ->
return new RichResonseObject(pair.getT1(), pair.getT2())
}).cast(RichResonseObject)
}
Run Code Online (Sandbox Code Playgroud)
有什么方法可以将Mono <List <String >>转换为Flux <String>?
这应该工作.鉴于Mono中的字符串列表
Mono<List<String>> listOfIds;
Flux<String> idFlux = listOfIds
.flatMapMany(ids -> Flux.fromArray(ids.toArray(new String [0])));
Run Code Online (Sandbox Code Playgroud)
更好的是
listOfIds.flatMapMany(Flux::fromIterable)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4246 次 |
| 最近记录: |