我有一個訂閱呼叫,需要只接收一次數據。 其長時間運行的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