【发布时间】:2020-02-12 17:33:36
【问题描述】:
我有一个从 Flux 源填充 Map 的类。我希望能够即时 updateTheData(),但我希望 getTheData() 能够返回解析为当前或待处理数据的 Mono。
基本上如果 theData != null 并且没有正在进行的通量,则返回 Mono.just(theData) 否则返回最终会发出数据的单声道。
编辑:这是迄今为止我能做的最好的事情
class SomeClass {
private Mono<Map<String, Data>> theData;
private final SomeFluxService someFluxService = new SomeFluxService();
public SomeClass() {
updateTheData();
}
public void updateTheData() {
someFluxService.get()
.collectMap(Data::getId, Function.identity())
.subscribe(d -> this.theData = Mono.just(d));
}
public Mono<Map<String, Data>> getTheData() {
return this.theData;
}
}
但是还是存在updateTheData()第一次完成之前getTheData()会返回null的问题
帮助表示赞赏!
【问题讨论】:
标签: java spring-webflux project-reactor reactor