关于这个话题有很多疑问和评论,但是我有一个更具体的问题,问起来似乎很愚蠢,但是我想确定自己的身份。
我了解到,你无需退订HttpClient
有 Angular 的通话,因为它将自动执行此操作。
但是,如果我有一个具有此功能的单独服务:
服务
get() {
return this.httpClient.get('someurlhere');
}
然后让一个组件像这样消耗它:
成分
this.service.get().subscribe(() => {});
然后,由于该组件中已包含订阅,我是否需要取消订阅?
热衷于知道这是否有任何区别。
你应该退订
内存泄漏没有问题,因为HTTP观察值在第一次响应后就完成了。
但是你的订阅块中的逻辑可能会导致问题,例如,如果你的api调用花费的时间太长,而用户决定离开该页面,则在这种情况下,因为你尚未取消订阅 Observable 的逻辑,例如订阅中的登录或导航会导致问题
只是为了通知你,这个问题已经在这里回答了
是否需要退订Http方法创建的 Observable 对象?
你可以参考此链接以获取详细答案
感谢您回答问题。我确实看到了该链接,但是想知道是否因为我在一个文件中有get请求,然后在另一个文件中有订阅,所以在取消订阅等方面没有任何区别。取消订阅的方式似乎更好,所以我将继续做到这一点-再次感谢。
最终,您将发出一个http请求并订阅它,这是同一件事