我有2个Observable,它们调用2个WS
首先我得到汽车清单。一切都好。但是我会得到每辆车的车主并将其设置在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
});
这是最好的方法吗? (此外,没有lambdas。)
答案 0 :(得分:2)
您可以利用this flatMap
重载:
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>>