我有这个代码来抓取缓存的值:
<div [@routerTransition]="getOutletState(outlet)">
<router-outlet #outlet="outlet"></router-outlet>
</div>
我缓存getConfigurations(): Observable<SiteConfiguration[]> {
return this.storageService.getSiteConfigurations().map(c => {
if(c) {
return c;
}
return this.httpClient.get<SiteConfiguration[]>(this.url + "/config").subscribe(c => c);
});
}
对象,但如果它不存在则需要转到服务器才能获取它。但是我不能在第一个中返回第二个observable,因为它将返回SiteConfiguration
。
我确信这是一种常见的情况,但我的google-fu未能找到答案。
答案 0 :(得分:4)
您的代码应如下所示
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);