【发布时间】:2016-11-28 15:32:56
【问题描述】:
我有一个只需要接收一次数据的订阅调用。 它所在的 Angular 2 页面运行时间很长。
我想确保订阅不会导致任何有关内存泄漏的问题,并且在第一次收到数据后取消订阅。
这是我进行 api 查询的服务。它使用 .first 因此一旦收到数据就应该清理一次。
getData(): Observable<string> {
let _url = SOME_API_URL;
return this._http.get(_url).first().map((response: Response) => { return response.json(); });
}
这是我的 Ng2 订阅。我需要做些什么来确保在收到 first() 数据后清理所有内容吗?
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,但由于页面运行时间较长且不经常刷新,因此不会调用它。
【问题讨论】: