Location.subscribe()がリークしてしまう
ブラウザのBackボタンが押されたことを検知するためにLocationクラスを使用しています。
https://angular.io/docs/ts/latest/api/common/index/Location-class.html
export class PathLocationComponent {
location: Location;
constructor(location: Location) {
location.subscribe(val => console.log(val))//output popstate
}
}
しかしながらこのコードで「戻る」と「進む」を繰り返すと出力されるログの数が増えて行ってしまいます。
Location.subscribe()がリークしているものと思われますが、Location.unsubscribe()がないので解放の仕方もわかりません。
リークを防ぐ方法もしくは、subscribeを解放する方法はありますでしょうか。
PlatformLocation.onPopState().というメソッドもありますが
https://angular.io/docs/ts/latest/api/common/index/PlatformLocation-class.html
ドキュメントで以下の様に言われてしまっています。
This class should not be used directly by an application developer. Instead, use Location.