前提・実現したいこと
Angular9で、
カウンターからobservable を作成したりするとします。
https://angular.io/guide/rx-library
以下のようなコンポーネントで作成した場合、テンプレートでログが出力され続けます。
import { Component } from '@angular/core'; import { interval } from 'rxjs'; @Component({ selector: 'app-root', templateUrl: './app.component.html', styleUrls: ['./app.component.css'] }) export class AppComponent { title = 'angular-tour-of-heros'; constructor( ){} ngOnInit(): void { // Create an Observable that will publish a value on an interval const secondsCounter = interval(1000); // Subscribe to begin publishing values secondsCounter.subscribe(n => console.log(`It's been ${n} seconds since subscribing!`)); } }
この処理をすると、このコンポーネントを利用するテンプレートでは、延々に処理が続き、メモリリークを起こすとも記載されるサイトも見られます。
https://angular.io/guide/lifecycle-hooks#ondestroy
これを回避するために、ngOnDestroy()を使用しようと考えいます。
https://angular.io/guide/lifecycle-hooks#lifecycle-sequence
質問
上記に対しどう対応するのかご教授ください。
マニュアルからでは、ngOnDestroy()をどうやって使用すればいいのかわかりません。
そもそもngOnDestroy()する意味を間違えているのであればご指摘ください。
参考
ここに問題に対して試したことを記載してください。
→説明を読んだだけでは利用の仕方が分からず。
補足情報(FW/ツールのバージョンなど)
https://qiita.com/ksh-fthr/items/ccd9861f919c4aa30ae8
https://lacolaco.hatenablog.com/entry/2018/04/10/230413
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/04/30 10:11
2020/04/30 12:59
2020/04/30 13:58
2020/04/30 14:30 編集
2020/04/30 14:37
2020/04/30 14:39