0

我使用 HttpClient.get 创建了一个从服务器返回用户详细信息的服务。

public getUser(id: number): Observable<User>{

return this.http
  .get<User>('myUrl?id='+id);}

我已经将服务注入到一个组件中。在组件中,我想获得一个用户,所以我订阅了返回 Observable 的服务方法。

到目前为止,一切都很好。

我的问题:现在我想获得另一个用户,问题是我如何激活服​​务方法以再次获得用户?

每次需要用户时,我应该取消订阅并再次订阅吗?

4

1 回答 1

1

返回的所有 ObservableHttpClient都是的。

Observables 是将观察者与生产者联系起来的函数。如果在订阅期间创建并激活了底层生产者,则可观察对象是“冷的”。这意味着,如果 observables 是函数,则通过调用该函数来创建和激活生产者。(来源

所以,多次订阅你的服务HttpClient方法并从不同的地方调用它就可以了,你不需要取消订阅它。但请记住,必须取消订阅组件销毁的所有订阅者。

于 2018-01-24T10:05:02.673 回答