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

0 ответов

Другие вопросы по тегам