I am new to Combine, please help. I need to combine 2 URL requests to receive complete data. First one with ids, and second request should use these ids in their request. I need it in one publisher. So I perform first:
func getDataFromServer(request: Request) -> AnyPublisher<MyData, NetworkError> {
return networking.xml(request)
.mapError { NetworkError.invalidData) }
.flatMap { response -> AnyPublisher< MyData, NetworkError> in
return Future< MyData, NetworkError>.init { promise in
guard let data = MyData.from(response: response) else {
return promise(.failure(NetworkError.parseError))
}
if data.myID.count > 0 {
**// Perform second request with data.myID as parameter
// receive and fill additional fields data in 'data' object**
}
promise(.success(MyData))
}.eraseToAnyPublisher()
}
.eraseToAnyPublisher()
}