我有一个订阅呼叫,需要只接收一次数据。 其长时间运行的Angular 2页面。Angular2和RXJS,一次接收数据后取消订阅
我想确保订阅不会在内存泄漏和第一次收到数据时退订任何问题。
这是我的服务,使api查询。它使用.first,所以一旦收到一次数据就应该清理。
getData(): Observable<string> {
let _url = SOME_API_URL;
return this._http.get(_url).first().map((response: Response) => { return response.json(); });
}
这是我的Ng2订阅。我需要做什么吗?确保在接收到第一个()数据后清理所有内容?
this._service.getData().subscribe((data: any) => {
// Do something once.
// DO I HAVE TO UNSUBSCRIBE OR WILL THE CLEANUP HAPPEN DUE TO THE ABOVE FIRST() CALL?
});
我可以使用ngDestory,但不会被调用,因为页面长时间运行并且不经常刷新。
谢谢您的信息。如果页面长时间运行,那么ngOnDestroy会触发?我认为这会在组件卸载时触发。第一次收到数据后,我需要进行这种清理。这仍然是做到这一点的方法吗? –
@BenCameron我可能一直不清楚,我编辑了我的帖子。 – Maxime