我最近注意到,即使之前由于多线程问题而取消订阅,订阅者也可以收到onNext事件。 https://github.com/ReactiveX/RxJava/issues/1590
所以我有一个使用Observable.OnSubscribe<Data>
接口Observable.create(OnSubscribeImpl())
创建的observable
该实现只是根据内部实现中的另一个异步回调调用订阅者的onNext()
和onCompleted()
方法。
如果在发送isUncusbscribed()
事件之前无法检查onNext()
,则可能会导致错误,如上所述。
//correct code
if (!subscriber.isUnsubscribed()) {
subscriber.onNext(data);
}
我想用TestSubscriber
创建一些单元测试来检查情况,当subscriber.isUnsubscribed()检查不执行时。