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