我是RxJava/RxAndroid的新手,但我坚持使用我的用例。RxJava/RxAndroid的迭代列表
我试着来迭代List<A>
转换每个A
成B
异步的(因为它需要调用数据库)和我Observer
应该在每一个成功的转换通知(在onNext()
)做在主线程上的一些工作。
我成功设法转换了整个列表,然后在onNext()
收到我的List<B>
,但我需要在每个项目上通知,而不是一旦完成所有项目。
我试过的东西与运营商from
,但如果我用我的from(List<A>)
必须Observer
对象receivied来自同一类型(A
,而不是B
)。
这是我的代码如何将整个List<A>
转换为list<B>
我应该在这里更改什么?
private List<A> listOfA;
private startConversion() {
Observer observer = new Observer<List<B>>() {
@Override
public void onCompleted() {
}
@Override
public void onError(Throwable e) {
e.printStackTrace();
}
@Override
public void onNext(List<B> convertedItems) {
onConversionCompleted(convertedItems);
}
};
Observable<B> observervable = Observable.fromCallable(new Callable<List<B>>() {
@Override
public List<B> call() throws Exception {
return convertListOfAToListOfB(listOfA);
}
});
subscription = observable
.subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(observer);
}
PS:这是伪代码。
感谢您的帮助!