2017-08-04 16 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

私の最後から軽いタイプミス。答えを修正しました。それを指摘Thnks! –

関連する問題