У меня есть наблюдаемое, которое недолговечно (запрос http).
Я использую publishReplay(1)
и refCount()
, чтобы при попытке получить к нему доступ одновременно,он вернет то же значение без повторного вызова http.
Но если все подписки отписаны, мне нужно выполнить некоторую очистку.
Я не могу использовать finalize
, потому что:
- если я использую его до
publishReplay
, то он закрывается после выполнения http-запроса - , еслиЯ использую его после
refCount
, он будет запущен, как только одна заметная отмена подписки (вместо того, когда все отписались)
Так что в принципе я хотел бы передать обратный вызов refCount
и вызовите этот обратный вызов, когда количество подписок достигнет 0. Но это не работает так.Можно ли как-то «быть предупрежденным», когда все подписчики отписались?
Самый простой способ, о котором я могу подумать сейчас, - это создать собственный оператор, который бы в значительной степени расширил refCount
, добавивобратный вызов.
Есть мысли получше?Я уверен, что есть лучший способ сделать это.
Спасибо!