2017-08-04 35 views
3
happyCustomers = 0; 
followers = 0; 
awardsWinning = 0; 
photosTaken = 0; 
arrayOfImages = []; 
constructor() { } 

ngOnInit() { 
    Observable.interval(400).subscribe(x => { 
this.happyCustomers = this.happyCustomers + 1; 
    }); 
    Observable.interval(200).subscribe(x => { 
    this.followers = this.followers + 1; 
    }); 
    Observable.interval(700).subscribe(x => { 
    this.awardsWinning = this.awardsWinning + 1; 
    }); 
    Observable.interval(300).subscribe(x => { 
    this.photosTaken = this.photosTaken + 1; 
}); 
} 

这里我加入+ 1 evrytime并且它不停止,当我达到某个数据时它应该停止计数。解决方案停止角度2中的旋转数字

回答

3

使用take方法。

take方法从源头获取第一个count值,然后完成。

在订阅之前调用它。

const certainNumber = 10; 

Observable.interval(400) 
    .take(certainNumber) 
    .subscribe(_ => this.happyCustomers++); 
+0

它正常工作。 –

2

如果您有一个硬编码值,可以使用take()命令。

实施例:

Observable.interval(400) 
      .take(500) 
      .subscribe(x => { 
       this.happyCustomers = this.happyCustomers + 1; 
      }); 

500个事件已被发出后上面的代码将停止。

http://reactivex.io/rxjs/class/es6/Observable.js~Observable.html#instance-method-take

+0

任何进口为take(); –

+1

您应该在订阅之前调用'take'方法。 – Saka7

+0

从我的结尾轻微的错字。修复了答案。指出它的问题! –