rxjs: как я могу получить информацию о отписке наблюдаемого
У меня есть проект 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$
потому что функция используется в другом месте.