2017-12-23 18 views
5

ngOndestroyが他のルートナビゲーションで呼び出していますが、メソッド内でclearIntervalを実行していません。どこが間違っているのですか?私は他のコンポーネントの中にバックグラウンドで実行されています。clearintervalが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); 
    }) 
} 

答えて

4

間隔のインスタンスを返すのを忘れました。

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

zgueとpatrykありがとうございます。それは私のために働いた。あなたは素晴らしいです。トンに感謝します。 –

2

timerに値を戻していないためです。

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