【发布时间】:2017-05-03 21:20:55
【问题描述】:
我开始学习反应式流是因为我对使用 RxJava 替代更传统的事件总线的新趋势感到好奇。 This blog post 是对如何完成此操作的典型描述。如果我理解正确的话,RxJava 1.x 并不是严格意义上的 Reactive Streams 的实现,但它非常相似。 2.0 版包含一些兼容的类,或者至少通过了 TCK,因此此代码的更新版本可能看起来有些不同。
public class UserLocationModel {
private PublishSubject<LatLng> subject = PublishSubject.create();
public void setLocation(LatLng latLng) {
subject.onNext(latLng);
}
public Observable<LatLng> getUserLocation() {
return subject;
}
}
在 Reactive Streams 术语中,我认为 subject 是 Processor,它既是 Publisher 又是 Subscriber。
问题在于,在未订阅任何内容的 Subscriber 上调用 onNext 似乎违反了 Reactive Streams 规范,尤其是 rule 1.9。
这仅仅是一个实现细节吗?我认为您通常不能依赖此与兼容的 Reactive Streams 实现一起工作,这是否正确?
【问题讨论】:
标签: rx-java event-bus reactive-streams