Sobes.tech
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.