rxjs切换展开可观察

时间:2017-02-24 18:55:06

标签: rxjs

我设置了一个主题,然后在其上放了一些方法。它似乎按预期工作,直到它到达.switch(),我认为它只是跟踪最后一次调用。我收到错误Property 'subscribe' does not exist on type 'ApiChange'它似乎将它从一个observable转换为ApiChange类型。我不明白这种行为。我应该使用不同的运营商吗?

服务

  private apiChange = new Subject<ApiChange>();
  apiChange$ = this.apiChange.asObservable().distinctUntilChanged().debounceTime(1000).switch();

组件:

  this.service.apiChange$.subscribe(change => {
            this.service.method(change);
        });

1 个答案:

答案 0 :(得分:3)

.debounceTime(1000)已经确保您每秒只会从您的可观察链中获得最多一个值。 1秒安静时间之前的所有值都将被丢弃。

使用简单的主题(不是 ReplaySubject ),无论如何都不会向订阅者提供过去的值。

您可能只想跳过 .switch()并享受没有它的链条。