Junior — Middle
Comment effectuer deux appels réseau en parallèle et combiner leurs résultats en utilisant RxJava?
sobes.tech IA
Réponse de l'IA
Dans RxJava, pour exécuter deux appels réseau en parallèle et combiner leurs résultats, vous pouvez utiliser l'opérateur zip. Il permet de lancer les deux appels simultanément et d'obtenir leurs résultats lorsque les deux sont terminés.
Exemple:
Single<Result1> call1 = api.getData1();
Single<Result2> call2 = api.getData2();
Single.zip(call1, call2, (result1, result2) -> {
// combiner les résultats
return new CombinedResult(result1, result2);
})
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(combinedResult -> {
// traitement du résultat combiné
}, throwable -> {
// gestion de l'erreur
});
Ici, les deux appels sont effectués en parallèle sur un thread d'E/S, et le résultat est combiné et transmis au thread principal pour traitement.