2017-09-04 3 views
0

나는 차의 목록을 가져옵니다 2 WSRxJava - 2 호출

  1. 전화 2 Observables은,이 결합 (이 시점에서를,이 목록에서 각 차량에는없는 그의 소유자)
  2. 가져 오기 자동차 소유자

먼저 자동차 목록을 얻습니다. 모든 것은 괜찮습니다. 그러나 각 차의 소유자를 얻고 car.setOwner(owner)과 같은 Car 엔티티에서 설정하고 소유자를 포함하는 자동차의 최종 목록을 보내야합니다.

Api.getCars() 
.subscribe(new Action1<List<Car>>() { 
    @Override 
    public void call(List<Car> cars) { 
    // get the list of cars, but need to get their owner 
    }); 

이렇게하는 것이 가장 좋은 방법은 무엇입니까? (또한,이없는 람다.)

+0

이 무슨 상관입니까? –

+1

왜냐하면 지금은 프로젝트가 그것들을 사용하지 않기 때문입니다. – ejay

+0

@ejay'주인을 얻는 중 '이 또 다른 비동기 API 호출입니까? – Manza

답변

2

당신이 활용할 수 thisflatMap 과부하 : 그것은 람다 또는없는 경우

Api.getCars() 
    .flatMap(cars -> Observable.from(cars)) // flatten your list 
    .flatmap(car -> Api.getOwner(car), // request each owner 
      (car, owner) -> { 
       car.setOwner(owner); // assign owner to the car 
       return Observable.just(car); 
      }) 
    .toList() // collect items into List 
    ... // here is your Observable<List<Car>>