Rxjs 如何暂停观察?

Rxjs 如何暂停观察?,rxjs,observable,Rxjs,Observable,我正在开发我的第一款Angular 2产品。我创建了这个Observable.timer,然后订阅了它。它轮询服务器以获取数据 如何暂停并取消暂停 ngOnInit(): void { this.poll = Observable.timer(500,500).subscribe((t: any) => { this.request.getRackList(+this.global.zoneId).subscribe( incoming =>

我正在开发我的第一款Angular 2产品。我创建了这个
Observable.timer
,然后订阅了它。它轮询服务器以获取数据

如何暂停并取消暂停

  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);
  }

有多种方法可以暂停一个可观察对象。你可以:

  • 需要时取消订阅/重新订阅
  • .filter()
    暂停时清除排放
  • 创建一个可暂停/启动对所有订阅服务器的发射

您可以在此处查看:

基本上,您可以使用
switchMap
操作符停止计时器发射/重新启动它们,并使用pauser subject发出一个布尔值,指示您是要暂停还是重新启动。
如果您不需要最新的值,您可以将
publishReplay
替换为
publish

我真的很喜欢这篇演讲,这里介绍了一个获取知识的好地方或替代方法