rxjs:我如何得知可观察到的取消订阅

时间:2018-09-21 12:38:53

标签: angular rxjs observable switchmap

我有一个Angular项目,其中通过在输入字段中键入来启动HTTP搜索。就像网上的示例一样,使用以下代码(简化了)来完成此操作:

this.form.valueChanges.pipe (
  debounceTime (this.dueTime),
  distinctUntilChanged (compare),
  switchMap (() => async$()
);

function async$ {
    count++;
    return load$ ().pipe (tap ((response: T) => {
        count--;
        ...
      },error => {
        count--;
        ...
      }
    }
}

这可以正常工作,但是每次启动async$时,都会增加一个计数器,完成后,该计数器将再次减少。
因此,当switchMap取消订阅时,计数将增加但不会再次减少,因为从不调用成功或错误方法。

所以我的问题是:是否有可能引起订阅取消的通知,以便我减少柜台数量?

将计数逻辑放在async$中是不可行的,因为该函数在其他地方使用。

0 个答案:

没有答案