如何解决RxJava 多 Observable 按顺序执行
三个观察者A、B、C
先执行Observer A,发送Observer A获取的数据
然后不发送数据执行B观察者
最后执行C观察者并发送C观察者获得的数据
如何用Rxjava实现?
Observable A = Observable.create(new ObservableOnSubscribe<List<T>>() {
@Override
public void subscribe(ObservableEmitter<List<T>> emitter) throws Throwable {
T data;
...
emitter.onNext(data);
emitter.onComplete();
}
}).subscribeOn(Schedulers.io());
Observable B = Observable.create(new ObservableOnSubscribe<List<T>>() {
@Override
public void subscribe(ObservableEmitter<List<T>> emitter) throws Throwable {
//no need to call onNext
...
emitter.onComplete();
}
}).subscribeOn(Schedulers.io());
Observable C = Observable.create(new ObservableOnSubscribe<List<T>>() {
@Override
public void subscribe(ObservableEmitter<List<T>> emitter) throws Throwable {
T data;
...
emitter.onNext(data);
emitter.onComplete();
}
}).subscribeOn(Schedulers.io());
A、B、C 共享同一个观察者
解决方法
您可以连接 3 个 Observable
并通过同一个观察者接收每个 List<T>
:
Observable<List<T>> A = ...
Observable<List<T>> B = ...
Observable<List<T>> C = ...
Observable.concat(A,B,C)
.subscribe(list -> {
// process each list from A,C in order
});
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。