개발하다보면 api 요청 한번으로 배열형태로 응답이 오는 경우도 있지만
하나의 api를 여러번 호출하여 배열로 합쳐서 사용해야하는 경우가 생긴다
func fetchData() -> AnyPublisher<Model, Error> {
// api 호출
}
let result: AnyPublisher<[Model], Failure> =
Publishers
.MergeMany(
array.map { _ in
fetchData()
}
)
.collect()
.eraseToAnyPublisher()
이렇게 해주면 하나의 AnyPublisher에 배열 형태로 담아서 return 할 수 있게된다.
https://developer.apple.com/documentation/combine/publishers/mergemany
Apple Developer Documentation
developer.apple.com
https://developer.apple.com/documentation/combine/publisher/collect(_:)