私はRxJava/RxAndroidを使い慣れていますが、私の使用事例は残っています。RxJava/RxAndroidでリストを反復する
私は(それがデータベースへの呼び出しを必要とするため)非同期B
に各A
を変換するList<A>
を反復処理しようとすると、私のObserver
は、メインスレッド上でいくつかの仕事をするために(onNext()
で)成功するたびに、変換に通知する必要があります。
リスト全体の変換に成功し、List<B>
をonNext()
に受信しましたが、すべての項目が完了してからではなく、各項目に通知する必要があります。
私は、オペレータfrom
で何かをしようとしたが、私が使用している場合from(List<A>)
私Observer
は、同じタイプ(A
なくB
)からオブジェクトをreceivied必要があります。
コード全体を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:これは擬似コードです。
ありがとうございました!