From 31de1cb1334bf3eee033d30b73fd892ba517a45a Mon Sep 17 00:00:00 2001 From: Darren Nelsen Date: Thu, 26 Apr 2018 15:37:46 -0400 Subject: [PATCH] fix memory leak by clearing interval on destroy hook --- app/src/components/latest-blocks/latest-blocks.ts | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/app/src/components/latest-blocks/latest-blocks.ts b/app/src/components/latest-blocks/latest-blocks.ts index 00dc06e..ed65f6c 100644 --- a/app/src/components/latest-blocks/latest-blocks.ts +++ b/app/src/components/latest-blocks/latest-blocks.ts @@ -20,17 +20,19 @@ export class LatestBlocksComponent { @Input() public numBlocks: number; @Input() public showAllBlocksButton: boolean; @Input() public showTimeAs: string; + private reloadInterval: any; constructor(private blocksProvider: BlocksProvider, private navCtrl: NavController, ngZone: NgZone) { this.loadBlocks(); + const seconds: number = 15; ngZone.runOutsideAngular(() => { - setInterval( + this.reloadInterval = setInterval( function (): void { ngZone.run(function (): void { this.loadBlocks.call(this); }.bind(this)); }.bind(this), - 1000 * 30 + 1000 * seconds ); }); } @@ -63,4 +65,8 @@ export class LatestBlocksComponent { public goToBlocks(): void { this.navCtrl.push(BlocksPage); } + + private ngOnDestroy(): void { + clearInterval(this.reloadInterval); + } }