Jon*_*lis 3 observable rxjs typescript angular
我有这个获取缓存值的代码:
getConfigurations(): Observable<SiteConfiguration[]> {
return this.storageService.getSiteConfigurations().map(c => {
if(c) {
return c;
}
return this.httpClient.get<SiteConfiguration[]>(this.url + "/config").subscribe(c => c);
});
}
Run Code Online (Sandbox Code Playgroud)
我缓存了该SiteConfiguration对象,但如果它不存在,则需要转到服务器来获取它。但是我不能在第一个中返回第二个 observable,因为它会返回一个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);
Run Code Online (Sandbox Code Playgroud)