Я хочу использовать RX таким образом, чтобы он загружал данные из нескольких API и объединял их все. Все они будут выполняться параллельно, а затем объединять данные из ответов всех из них. Я выполняю их во вложенных вызовах здесь, и я хотел бы преобразовать код.
public func searchListings(searchState: SearchState,
renderState: SearchRenderState) - Observable<PropertyNetworkResponse {
return Observable.create({ (observer) - Disposable in
_ = self.getXData(searchState: searchState, renderState: renderState).subscribe(onNext: { (xData) in
_ = self.getYData(searchState: searchState, renderState: renderState).subscribe(onNext: { (yData) in
_ = self.getZData(searchState: searchState, renderState: renderState).subscribe(onNext: { (zData) in
let results = xData + yData + zData
observer.onNext(resultNetworkResponse)
observer.onCompleted()
}, onError: { (error) in
observer.onError(error)
}, onCompleted: nil, onDisposed: nil)
}, onError: { (error) in
observer.onError(error)
}, onCompleted: nil, onDisposed: nil)
}, onError: { error in
observer.onError(error)
}, onCompleted: nil, onDisposed: nil)
return Disposables.create()
})
}