End interval when route changes in Angular 2

后端 未结 3 501
青春惊慌失措
青春惊慌失措 2021-01-05 07:22

I start a timer in an Angular 2 component which is inside a router outlet.

setInterval(() => {
    ...
}, 10000);

When I leave the route

3条回答
  •  暖寄归人
    2021-01-05 08:04

    You could clear the interval from this hook. Mine is controlled from the component/view.

    export classTestInterval implements OnInit, OnDestroy{
         public timerInterval:any;
         ngOnInit(){
           // Need interval scope in the component could be from somewhere else, but we need scope to be able to clear it on destruction of component.
           this.timerInterval = setInterval(function(){...},10000);
         }
         ngOnDestroy() {
            // Will clear when component is destroyed e.g. route is navigated away from.
            clearInterval(this.timerInterval);
         }
    }
    

提交回复
热议问题