Angular:即使使用取消订阅功能,数据回调也不会停止

时间:2017-07-28 01:00:13

标签: angular ionic3

我正在尝试使用此函数更新api中的数据

ngOnInit(){
        setInterval(()=>{
            this.getPhonebook();
        }, 1000);
    }



getPhonebook() {
    this.showPhonebook = this.beaconProvider.getPhoneBookDirectories().subscribe(data => {
        this.infos = data;
    }, (err) =>{
        console.log(err);
    })

}

并尝试使用它来销毁它:

 ionViewDidLeave(){
    this.showPhonebook.unsubscribe();   
 }

 ngOnDestroy(){
    this.showPhonebook.unsubscribe();   
 }

问题是,当我尝试使用ngDestroy销毁或将其附加到IonViewDidLeave()生命周期时,即使我已经在另一个页面上,该功能仍然会调用。那么有没有办法实现自动更新我渴望有角度,因为我担心给定一个大事务setInterval会导致错误。

1 个答案:

答案 0 :(得分:0)

如果在组件中使用setInterval,则需要设置clearInterval。

 myInterval: any;

 ngOnInit(){
    this.myInterval = setInterval(()=>{
        this.getPhonebook();
    }, 1000);
}



ngOnDestroy(){
    clearInterval(this.myInterval);
 }