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