我正在寻找一种处理Observables<T>
序列的方法。
List.of(observable1, observable2, ..., observableN);
在某种程度上,如果其中一个失败,则应跳过所有后续可观察量并报告error
。或success
如果所有可观测量都完整且没有错误。
答案 0 :(得分:3)
如果所有可观察量的T都相同,那么只需使用Observable.from()
将可观察量列表转换为Observable of Observables。然后使用Observable.concat()
按顺序处理每个observable。任何错误都将暂停处理并调用您的订阅者onError()。
以下假设您有一个声明为List<Observable<Object>> observablesList
的变量。只需替换您的项目类代替Object
类。
Observable
.concat(Observable.from(observablesList)) // The magic happens here.
.subscribe(new Observer<Object>() {
@Override
public void onCompleted() {
// Called when all items from all observables have
// been emitted.
}
@Override
public void onError(Throwable e) {
// All errors end up here.
}
@Override
public void onNext(Object item) {
// Do what you want with "item"
}
});