2017-12-23 24 views
5

ngOndestroy của tôi đang gọi với điều hướng tuyến đường khác nhưng nó không thực hiện clearInterval bên trong phương thức. Tôi đang làm sai ở đâu? Nó đang chạy trong nền trong khi tôi đang ở trong thành phần khác.clearinterval không hoạt động bên trong 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); 
    }) 
} 

Trả lời

4

Bạn quên trả lại phiên bản của khoảng thời gian.

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

Cảm ơn bạn zgue và patryk. Nó làm việc cho tôi. Các bạn thật tuyệt vời. cảm ơn một tấn. –

2

Vì bạn không trả lại bất kỳ giá trị nào cho timer.

// you need to return interval identificator to be able to clear it later. 
interval(){ 
    return setInterval(()=>{ 
    this.getData(); 
    },20000) 
} 
Các vấn đề liên quan