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