Возможно ли иметь вид BehaviorSubject
с переключателями паузы и возобновления? Что-то вроде PausableBehaviorSubject.pause()
и PausableBehaviorSubject.resume()
? Как это можно сделать?Pausable BehaviorSubject?
Идея состоит в том, что при приостановке объект не пересылал события, полученные через PausableBehaviorSubject.onNext()
, а вместо этого сохранял только последний. После возобновления (или после подписки, если не приостановлено), PausableBehaviorSubject
отправит сохраненное последнее событие (если оно есть) и переадресует последующие события его подписчику (ами).
что-то вроде этого: 'subject.filter (i ->! IsPaused) .replay (1) .autoconnect()'? (не проверено.) – dwursteisen
не можете ли вы просто «подписаться» и «отписаться» вместо «возобновить» и «приостановить»? –
@SamuelGruetter проблема в том, что вы позволите наблюдателю контролировать, когда он будет получать обновления, а когда нет. С наблюдаемой паузой можно было бы инкапсулировать, и, таким образом, приостановка/возобновление будет оставаться вне досягаемости наблюдателя. –