首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >角获取Http从可观测到的实例获取一个实例

角获取Http从可观测到的实例获取一个实例
EN

Stack Overflow用户
提问于 2017-12-20 13:23:25
回答 2查看 683关注 0票数 0

我有一个问题,我的组件很少需要来自后端的相同数据。所以他们都调用了getDataMethod();看起来如下所示

代码语言:javascript
复制
public getData(): Observable<any> {
  return this.http.get<any>(this.backendUrl);
}

响应在5秒内,在此期间,我大约调用此方法3-4次。所以,我的问题是,他们是否会把相同的可观察性返回给多个订阅者?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-12-20 13:55:37

您可以像这样以replaySubject的形式发布响应

代码语言:javascript
复制
public getData(): Observable<any> {
  return this.http.get<any>(this.backendUrl)
                .publishReplay(1)
                .refCount();
}

这将在每次有人订阅可观察到的api端点的情况下重放来自服务器的结果,而不调用api端点。

票数 1
EN

Stack Overflow用户

发布于 2017-12-20 20:46:40

您可以使用“缓存”变量。

代码语言:javascript
复制
data:any
public getData(): Observable<any> {
  if (this.data)
     return Observable.of(this.data);
  else
     return this.http.get<any>(this.backendUrl).do((data:any)=>
       {
           this.data=data
       });
}
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47907055

复制
相关文章

相似问题

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