Sobes.tech
Junior — Middle

Hoe kun je met RxJava twee netwerkoproepen parallel uitvoeren en hun resultaten combineren?

sobes.tech AI

Antwoord van AI

In RxJava, om twee netwerkoproepen parallel uit te voeren en hun resultaten te combineren, kun je de zip-operator gebruiken. Hiermee kun je beide oproepen gelijktijdig starten en hun resultaten verkrijgen wanneer beide voltooid zijn.

Voorbeeld:

Single<Result1> call1 = api.getData1();
Single<Result2> call2 = api.getData2();

Single.zip(call1, call2, (result1, result2) -> {
    // resultaten combineren
    return new CombinedResult(result1, result2);
})
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(combinedResult -> {
    // verwerking van het gecombineerde resultaat
}, throwable -> {
    // foutafhandeling
});

Hier worden beide oproepen parallel uitgevoerd op een IO-thread, en het resultaat wordt gecombineerd en naar de hoofdthread gestuurd voor verwerking.