Retrofit2 ile birlikte RxJava ve RxAndroid kullanıyorum.RxJava: Zip operatörü ile hata nasıl ele alınır?
Observable<ResponseOne> responseOneObservable = getRetrofitClient().getDataOne()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread());
Observable<ResponseTwo> responseTwoObservable = getRetrofitClient().getDataTwo()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread());
aşağıdaki Observer ikiden fazla fermuar operatörü kullanılması.
Observable<ArrayList<TestData>> testDataObservable = Observable.zip(responseOneObservable, responseTwoObservable, new Func2<ResponseOne, ResponseTwo, ArrayList<TestData>>() {
@Override
public ArrayList<TestData> call(ResponseOne responseOne, ResponseTwo responseTwo) {
ArrayList<TestData> testDataList = new ArrayList();
// Add test data from response responseOne & responseTwo
return testDataList;
}
})
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Subscriber<ArrayList<TestData>>() {
@Override
public void onNext(ArrayList<TestData> testDataList) {
}
@Override
public void onCompleted() {
Log.d(TAG, "onCompleted");
}
@Override
public void onError(Throwable t) {
Log.d(TAG, "onError Throwable: " + t.toString());
}
});
herhangi bir hata varsa o zaman doğrudan testDataObservable
ait abone onError
yöntemini çağıracak responseOneObservable
ve responseTwoObservable
uyarlanmasında http arama sırasında oluşur.
Gözlemlenebilir iki başarıdan biri olsa bile, zip operatörünün call
yöntemine devam etmek istiyorum.
zip
numaralı telefonu kullanarak hata yanıtını nasıl ele alırım?
1 OnErrorResumeNext'in bunu yapmanıza izin vermesi gerektiğine inanıyorum. –