这是我的实现。
我有favCitiesID = Observable<[Int]>
将会是flatMap和map。每个城市ID将用于返回Observable<CityMappable>
的API调用中。我已经达到可以使用[Observable<CityMappable>]
的地步,但是我想将其转换为Observable<[CityMappable]>
,以便可以将其绑定到tableview数据源。
let favCitiesID: Observable<[Int]> = Observable.of([0,1,2])
let observableCities = favCitiesID.flatMap { cityIds -> Observable<[CityMappable]> in
return cityIds.map{ return self.apiManager.getCurrentWeatherData(for: $0)}
}
这是APIManager函数定义
func getCurrentWeatherData(for cityID: Int)->Observable<CityMappable>
答案 0 :(得分:2)
您可以使用Combine将[Observable<CityMappable>]
转换为Observable<[CityMappable]>
。
尝试此代码
let observableCities = favCitiesID.flatMap { cityIds -> Observable<[CityMappable]> in
let obs = cityIds.map{ return self.apiManager.getCurrentWeatherData(for: $0)}
return Observable.combineLatest(obs)
}