任何人都知道BehaviorSubject的自定义实现会在订阅者使用它之后丢弃最后一个值吗?
为什么这样的实现会是一个坏主意?
答案 0 :(得分:0)
我以这种方式解决了这个问题:
<T> Observable<T> discardOnceDelivered(BehaviorSubject<T> subject) {
return subject.filter(t -> t!=null).doOnNext(inputFields -> subject.onNext(null));
}
唯一的限制(在Rx 1.x中)是null
值不被接受为有效发射值,而是用于编码丢弃最后一个值的操作。