Sobes.tech
Junior — Middle

Wie kann man mit RxJava zwei Netzwerkanfragen parallel ausführen und ihre Ergebnisse zusammenführen?

sobes.tech KI

Antwort von AI

In RxJava, um zwei Netzwerkaufrufe parallel auszuführen und ihre Ergebnisse zu kombinieren, kann man den Operator zip verwenden. Dieser ermöglicht es, beide Aufrufe gleichzeitig zu starten und ihre Ergebnisse zu erhalten, wenn beide abgeschlossen sind.

Beispiel:

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

Single.zip(call1, call2, (result1, result2) -> {
    // Ergebnisse kombinieren
    return new CombinedResult(result1, result2);
})
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(combinedResult -> {
    // Verarbeitung des kombinierten Ergebnisses
}, throwable -> {
    // Fehlerbehandlung
});

Hier werden beide Aufrufe parallel auf einem IO-Thread ausgeführt, und das Ergebnis wird kombiniert und an den Haupt-Thread zur Verarbeitung übergeben.