Rx Java возврат наблюдаемого после Observable.zip - PullRequest
0 голосов
/ 29 марта 2020

У меня есть две Observables, которые являются вызовами API. Я хочу, чтобы эти два работали параллельно, и после того, как они оба закончатся sh, я хочу назвать третью наблюдаемую с объединенным результатом.

Например:

У меня есть Observable<List<Place>> getPlaces() и Observable<AdditionalPlaceData> getAdditonalPlaceData()

Моя идея заключалась в том, чтобы создать метод, который архивирует их, затем обогащает места дополнительными данными и вызывает третью наблюдаемую

Я пытаюсь это так, но BiFunction of Observable.zip не может вернуть наблюдаемое:

private Observable<List<Place>> getPlaces(){
    return Observable.zip(getPlaces(), getAdditonalPlaceData(),(places, additonalPlaceData) -> {
            //enrich places with additional data
            return thirdApiCall(places);//This is not allowed
    });
}

Есть ли другой способ вместо Observable.zip, которого я не знаю, чтобы добиться этого варианта использования? И я не хочу использовать flatMap, потому что он будет запускать две наблюдаемые в последовательности. Спасибо за вашу помощь.

...