Dav*_*vid 6 rxjs typescript angular
可能是一个愚蠢的问题,但无法轻易找到答案.
在Angular应用程序中,我使用Rxjs进行http调用以获取并将数据发布到后端.假设我有一个服务MyService,其方法如下:
getData() {
this.http
.get("mybackendurl/mydata")
.map(res => res.json())
.subscribe(data => this.data = data);
}
Run Code Online (Sandbox Code Playgroud)
所以,假设我在几个地方使用这种方法,每次我导航到一个页面.不管做这种方式的便利性,我的问题是,这不像一个承诺,启动和完成,据我所知,这保持开放的连接,直到源终止,所以我需要以某种方式从这个退订每次我完成请求?
由于订阅是在服务中而不是在组件中完成的,因此服务不会被销毁,因此我担心我可能会创建多个订阅和连接而不是重用相同的订阅和连接.
谢谢!
Sur*_*yan 13
对于Http请求,您无需取消订阅.它实际上完成了observable,所以你不会有任何内存泄漏.
您可以使用对象的add功能来检查这一点Subscription.订阅取消订阅时会调用此函数.您也可以通过将complete函数(第3个参数)传递给函数进行检查,该函数subscribe将在请求之后调用,这意味着可以观察到observable.
this.http
.get("mybackendurl/mydata")
.map(res => res.json())
.subscribe(data => this.data = data)
.add(() => console.log('Unsubscribed'));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2756 次 |
| 最近记录: |