Junior — Middle
¿Cómo se pueden realizar dos llamadas de red en paralelo y combinar sus resultados usando RxJava?
sobes.tech AI
Respuesta de la IA
En RxJava, para realizar dos llamadas de red en paralelo y combinar sus resultados, se puede usar el operador zip. Permite iniciar ambas llamadas simultáneamente y obtener sus resultados cuando ambas finalicen.
Ejemplo:
Single<Result1> call1 = api.getData1();
Single<Result2> call2 = api.getData2();
Single.zip(call1, call2, (result1, result2) -> {
// combinamos los resultados
return new CombinedResult(result1, result2);
})
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(combinedResult -> {
// procesamiento del resultado combinado
}, throwable -> {
// manejo del error
});
Aquí, ambas llamadas se ejecutan en paralelo en un hilo de E/S, y el resultado se combina y se pasa al hilo principal para su procesamiento.