【问题标题】:Angular 4 | How to use event emitter in for loop角 4 |如何在for循环中使用事件发射器
【发布时间】:2017-12-08 06:53:53
【问题描述】:

如何使用事件发射器检测我的 for 循环的变化?

getdata(){
for(let mydata of this.data) {
            if (mydata.Zone == 1) {
                this.zoneOne.push(mydata);
            }
            if (mydata.Zone == 2) {
                this.zoneTwo.push(mydata);
            }
            if (mydata.Zone == 3) {
                this.zoneThree.push(mydata);
            }
            if (mydata.Zone == 4) {
                this.zoneFour.push(mydata);
            }
            if (mydata.Zone == 5) {
                this.zoneFive.push(mydata);
            }
            if (mydata.Zone == 6) {
                this.zoneSix.push(mydata);
            }
            if (mydata.Zone == 7) {
                this.zoneSeven.push(mydata);
            }
            if (mydata.Zone == 8) {
                this.zoneEight.push(mydata);
            }
        }
    }

this.timer= setInterval(() => { 
        this.getdata();
    }, (this.counter*1000));  

我只想在间隔完成后显示一次。但它似乎总是在推送我的数据,我在屏幕上获得了多个价值。如果上面有新数据,我该如何处理它以仅更改数组?

【问题讨论】:

    标签: angular


    【解决方案1】:

    如果您使用 setInterval,它将在所述间隔后继续触发该函数。您需要改用 setTimeout。像这样的:

    setTimeout(() => { 
        this.getdata();
    }, (this.counter*1000));
    

    setTimeout 只会触发一次函数,不会重复触发。

    【讨论】:

      猜你喜欢
      • 2018-10-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多