2017-09-04 64 views
0

我有2個觀測量,其中要求2 WSRxJava - 結合2個呼叫

  1. 獲取汽車列表(在這一點上,從這個列表中的每個車沒有他的主人)
  2. 獲取車的車主

所以首先我得到汽車列表。一切都好。但是我會爲每輛車獲得車主,並將其設置在Car實體中,如car.setOwner(owner),併發送包含車主在內的最終汽車列表。

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 
    }); 

這是最好的方法嗎? (此外,如果不lambda表達式。)

+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>>