我有这段代码可以获取缓存的值:
getConfigurations(): Observable<SiteConfiguration[]> {
return this.storageService.getSiteConfigurations().map(c => {
if(c) {
return c;
}
return this.httpClient.get<SiteConfiguration[]>(this.url + "/config").subscribe(c => c);
});
}
我缓存了
SiteConfiguration
对象,但是如果它不存在,则需要去服务器获取它。但是我无法在第一个内部返回第二个可观察的对象,因为它将返回Observable<Observable<SiteConfiguration[]>>
。我确定这是一种常见情况,但我的Google-fu无法找到答案。
最佳答案
您的代码应如下所示
getConfigurations(): Observable<SiteConfiguration[]> {
return this.storageService.getSiteConfigurations().flatMap(c => {
if(c) {
return Obserbable.of(c);
}
return this.httpClient.get<SiteConfiguration[]>(this.url + "/config")
})
}
getCOnfiguration().subscribe(c => c);