Angular 4 |如何在for循环中使用事件发射器

时间:2017-12-08 06:53:53

标签: angular

如何使用事件发射器检测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));  

我想在间隔完成后只显示一次。但它似乎总是推动我的数据,我在我的屏幕上获得多个价值。我怎么能处理这个只改变数组如果新的数据呢?

1 个答案:

答案 0 :(得分:0)

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

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

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