0

我有一个 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$因为该函数在其他地方使用。

4

0 回答 0