Angular 2 setinterval() keep running on other component

前端 未结 3 1002
醉酒成梦
醉酒成梦 2020-12-23 16:11

I have the following method in one component:

ngOnInit()
        {
            this.battleInit();
            setInterval(() => {
                this.bat         


        
相关标签:
3条回答
  • 2020-12-23 16:55

    every 40 seconds

     polling: any;
    
      ngOnInit() {
    
        this.consulta();
        this.pollData();
      }
    
     pollData () {
        this.polling = setInterval(() => {
        this.consulta();
    
      },40*1000)
    
     ngOnDestroy() {
        clearInterval(this.polling);
      }
    
    0 讨论(0)
  • 2020-12-23 17:00

    ngOnInit() {
      this.battleInit();
      this.id = setInterval(() => {
        this.battleInit(); 
      }, 5000);
    }
    
    ngOnDestroy() {
      if (this.id) {
        clearInterval(this.id);
      }
    }

    this.id is an identifier returned by the setInterval that can be used to cancel the operation using clearInterval.

    0 讨论(0)
  • 2020-12-23 17:11

    You need to use clearInterval method for this within the ngOnDestroy hook method of your component. For this you need to save the returned value by the setInterval method.

    Here is a sample:

    ngOnInit() {
      this.battleInit();
      this.id = setInterval(() => {
        this.battleInit(); 
      }, 5000);
    }
    
    ngOnDestroy() {
      if (this.id) {
        clearInterval(this.id);
      }
    }
    
    0 讨论(0)
提交回复
热议问题