Junior — Middle
Kaip naudojant RxJava galima atlikti du tinklo skambučius lygiagrečiai ir sujungti jų rezultatus?
sobes.tech AI
Atsakymas iš AI
RxJava, norint vykdyti du tinklo skambučius lygiagrečiai ir sujungti jų rezultatus, galite naudoti zip operatorių. Tai leidžia pradėti abu skambučius vienu metu ir gauti jų rezultatus, kai abu baigsis.
Pavyzdys:
Single<Result1> call1 = api.getData1();
Single<Result2> call2 = api.getData2();
Single.zip(call1, call2, (result1, result2) -> {
// rezultatų sujungimas
return new CombinedResult(result1, result2);
})
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(combinedResult -> {
// apdorojimas sujungtu rezultatu
}, throwable -> {
// klaidos apdorojimas
});
Čia abu skambučiai vykdomi lygiagrečiai IO sraute, o rezultatas sujungiama ir perduodama pagrindiniam srautui apdoroti.