2017-12-23 159 views
5

My ngOndestroy dzwoni z inną nawigacją po trasie, ale nie wykonuje clearInterval wewnątrz metody. Gdzie się mylę? Działa w tle, gdy jestem w innym komponencie.clearinterval nie działa wewnątrz ngOnDestroy()

timer:any; 

ngOnInit() { 
    this.timer= this.interval(); 
}; 

ngOnDestroy(){ 
    clearInterval(this.timer); 
    console.log("Inside Destroy"); 


} 

interval(){ 
    setInterval(()=>{ 
    this.getData(); 
    },20000) 
} 
getData(){ 
    this.dataservice.getdata() 
     .subscribe(users=>{ 
     this.datas=users; 
     console.log(this.datas); 
    }) 
} 

Odpowiedz

4

Nie pamiętasz, aby zwrócić wystąpienie interwału.

interval(){ 
    return setInterval(()=>{ 
    this.getData(); 
    },20000) 
} 
+0

Dziękuję zgue i patryk. To zadziałało dla mnie. Jesteście niesamowici. dziękuję tonę. –

2

Ponieważ nie zwracasz żadnej wartości do timer.

// you need to return interval identificator to be able to clear it later. 
interval(){ 
    return setInterval(()=>{ 
    this.getData(); 
    },20000) 
}