我有一个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$
中是不可行的,因为该函数在其他地方使用。