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