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.