Поведение паразитного субъекта?
Возможно ли иметь вид BehaviorSubject
с переключателями паузы и возобновления? Что-то вроде PausableBehaviorSubject.pause()
а также PausableBehaviorSubject.resume()
? Как это могло быть сделано?
Идея состоит в том, что, когда пауза, субъект не будет пересылать события, полученные через PausableBehaviorSubject.onNext()
, но вместо этого храните только последний. После возобновления (или после подписки, если не приостановлено), PausableBehaviorSubject
перенаправит сохраненное последнее событие (если оно есть) и перенаправит последующие события своему подписчику (подписчикам).
1 ответ
Есть оператор, который позволяет вам это сделать. Это называется pausableBuffered
, Вы можете увидеть анимацию по адресу: RxMarbles.
Ваш наблюдатель или субъект просто упакуют исходную наблюдаемую, добавят новую логическую наблюдаемую и переключат переключатель, предоставив значение true или false для вашей новой наблюдаемой.