首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Http服务缓存

Http服务缓存
EN

Stack Overflow用户
提问于 2017-06-21 16:59:57
回答 1查看 6.9K关注 0票数 4

我正在尝试在http服务的角应用程序中实现缓存。

我在服务中的代码countriesService

代码语言:javascript
运行
复制
  public get(): Observable<any> {
    return this.http.get(`/countries`, {})
      .map(res => res.json())
      .publishReplay(1)
      .refCount();
  }

在组件CountriesComponent,中

代码语言:javascript
运行
复制
  ngOnInit() {
    this.countriesService.get()
      .subscribe(res => {
        this.countries = res.countries;
      });
  }

我要在路由配置中加载组件

代码语言:javascript
运行
复制
const appRoutes: Routes = [
  { path: 'countries', component: CountriesComponent },
  { path: 'cities', component: CitiesComponent },
];

每次我从城市回到国家时,我都会看到=> /countries的请求。它不应该触发请求,因为它应该被缓存(这是它在角1.x中使用承诺的方式),但不应该使用角4和rxJ。

EN

回答 1

Stack Overflow用户

发布于 2017-06-21 18:53:12

您可以第一次保存服务中的国家,然后可以重新使用service变量。

代码语言:javascript
运行
复制
 public get(): Observable<any> {

        if(this.countries != null) 
        {
            return Observable.of(this.countries );
        } 
        else 
        {
               return this.http.get(`/countries`, {})
               .map(res => res.json())
               .do(countries => this.countries = countries )
               .publishReplay(1)
                 .refCount();
        }
    }
票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44682115

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档