Warm tip: This article is reproduced from serverfault.com, please click

angular-我是否需要通过组件中的订阅从httpClient退订

(angular - Do I need to unsubscribe from httpClient with subscription in component)

发布于 2020-12-22 16:52:44

关于这个话题有很多疑问和评论,但是我有一个更具体的问题,问起来似乎很愚蠢,但是我想确定自己的身份。

我了解到,你无需退订HttpClient有 Angular 的通话,因为它将自动执行此操作。

但是,如果我有一个具有此功能的单独服务:

服务

get() {
    return this.httpClient.get('someurlhere');
}

然后让一个组件像这样消耗它:

成分

this.service.get().subscribe(() => {});

然后,由于该组件中已包含订阅,我是否需要取消订阅?

热衷于知道这是否有任何区别。

Questioner
DBoi
Viewed
0
jagjeet 2020-12-23 01:41:31

你应该退订

内存泄漏没有问题,因为HTTP观察值在第一次响应后就完成了。

但是你的订阅块中的逻辑可能会导致问题,例如,如果你的api调用花费的时间太长,而用户决定离开该页面,则在这种情况下,因为你尚未取消订阅 Observable 的逻辑,例如订阅中的登录或导航会导致问题

只是为了通知你,这个问题已经在这里回答了

是否需要退订Http方法创建的 Observable 对象?

你可以参考此链接以获取详细答案