0
我想限制在我的应用程序中不必要的HTTP调用的数量,但每次我订阅Observable时都会向服务器发出请求。有没有办法订阅一个observable而不发起http请求?我在服务观察到看起来像这样:Angular4 Rxjs可观察限制后端HTTP请求
getServices(): Observable<Service[]> {
return this.http.get(this.serviceUrl).map(res => res.json())._catch(err => err);
}
然后在我的部分我订阅的观察到的是这样的:
this.serviceService.getServices().subscribe(services => this.services = services);
我想实现的就是以某种方式存储的业务数据(这样我就可以在整个应用程序中使用这些数据,而不需要分别在每个组件上提出请求,但是我也想知道组件何时收到这些数据(我通常通过订阅的方式收到这些数据)
...只是不要调用触发请求的函数? <。<为什么你会订阅它,如果你不想它运行?没有任何意义。 – Chrillewoodz
我订阅它,因为我想要它提供的相同数据...现在我创建了一个解决方法,并将“this.services”放入主题中,并在sbuject之外创建了一个observable。 –
这已经在这里很好地描述:https://stackoverflow.com/documentation/rxjs/8247/common-recipes/26490/caching-http-responses#t=201705280824475411303 – martin