2017-09-04 52 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>>