Я новичок в Swift Combine, поэтому у меня возникла небольшая проблема
Я пытаюсь вызвать два вызова API и объединить результаты, так как второй вызов API зависит от результата первого вызова.
Вот код
return self.gameRepository.fetchGames(forUser: user.id)
.map { games -> AnyPublisher<[Game], ApiError> in
let result = games.map { gameDto -> Game in
let location = self.venueRepository.fetch(by: gameDto.siteId)
.map { $0.mapToModel() }
let game = gameDto.mapToModel(location: location)
return game
}
Моя ошибка находится в строке 4 "let location", компилятор жалуется, когда я пытаюсь передать это в строку 5
game.mapToModel(location: location)
Не могу преобразовать значение типа 'AnyPublisher' в ожидаемый тип аргумента. Местоположение
Сигнатура вызова выборки из репозитория выглядит следующим образом
func fetch(by id: String) -> AnyPublisher<LocationDto, ApiError>
Так что это правильно, но вызов .map, который я использую на результат позволяет
$0.mapToModel()
произойти, поэтому у меня есть объект locationDto, который позволяет мне привести к моей модели Домена.
Любая помощь в том, как я могу вызвать эти два apis вместе, будет высоко ценится.