2017-02-07 98 views
0

我正在使用我的第一個Angular 2產品。我創建了這個Observable.timer,然後訂閱它。它輪詢服務器的數據。如何在Angular 2中暫停Observable 2

我的問題

如何暫停及恢復呢?

ngOnInit(): void { 
    this.poll = Observable.timer(500,500).subscribe((t: any) => { 
     this.request.getRackList(+this.global.zoneId).subscribe(
     incoming => this.import(incoming), 
     err => { this.global.err(err) } 
    ); 
    }) 
    this.canOpenClose = (this.global.mode === 2); 
    } 
+0

更換publishReplay替代這裏https://github.com/ReactiveX/rxjs/issues/1542描述 – martin

回答

2

有多種方法可以暫停Observable。你可以:需要

  • .filter()向外排放時暫停
  • +0

    太謝謝你了。我住你的第二個想法,但不知道該怎麼做。你知道一個好的網站,新手可以學到更多嗎? –

    +0

    我真的很喜歡這個講話https://youtu.be/3LKMwkuK0ZE知識的好地方是http://reactivex.io或http://rxmarbles.com –

    0

    你可以在這裏看看:RxJS - pause, upon resume give last paused value

    基本上,你使用switchMap運營商停止計時器發射/重新啓動他們和一個pauser主題ect發出布爾值,指示您是要暫停還是重新啓動。 如果你不需要最新的值,可以通過publish