【发布时间】:2016-11-25 21:22:51
【问题描述】:
假设我有这样的功能
public Observable<Data> getData() {
return Observable.concat(cacheObservable(), networkObservable()).first();
}
它返回带有来自缓存或网络的数据的 Observable。如果值已经保存,cacheObservable 将返回它,否则进行网络调用。
我想知道如何处理给定的场景:
1) 订阅者订阅 getData observable。
2) 缓存为空,因此将使用 networkObservable。
3) 在网络请求期间,第二个订阅者正在订阅 getData observable 并发出另一个请求(因为缓存仍然是空的)
我如何确保第二个订阅者将重用第一个请求的值,并且请求只会针对第一个订阅发出?
【问题讨论】:
标签: rx-java