【发布时间】:2018-06-07 11:31:31
【问题描述】:
我正在尝试通过执行以下操作来获得Observable<MyType>:
return this.cache.get<MyType, number>(storageName, version)
.map(cached => {
if (cached !== undefined) {
return cached;
}
return this.http.get<MyType>(`MyTypeGetUrl/${version}`)
.map(m => m)
.do(result => {
this.cache.put<MyType>(storageName, result).first().subscribe();
});
}).publishReplay(1).refCount();
cache.get 返回 Observable<MyType>,http.get<T> 返回 Observable<T>。
我要检查缓存中的对象,如果不存在,从服务器获取,缓存并返回。
但是,如果对象存在于缓存中,则返回Observable<MyType>,但如果需要去服务器,则返回Observable<Observable<MyType>>。
如何将服务器的结果展平,这样我就可以返回一个 Observable,只有在必须时才调用服务器?
【问题讨论】:
标签: rxjs observable rxjs5