rxjs: как я могу получить информацию о отписке наблюдаемого - PullRequest
0 голосов
/ 21 сентября 2018

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

...