func stories() -> AnyPublisher<[Story], Error> {
URLSession.shared
.dataTaskPublisher(for: EndPoint.stories.url)
.map(\.data)
.decode(type: [Int].self, decoder: decoder)
.mapError { error -> API.Error in
switch error {
case is URLError:
return Error.addressUnreachable(EndPoint.stories.url)
default:
return Error.invalidResponse
}
}
.filter({ !$0.isEmpty })
.flatMap { storyIDs in
mergedStories(ids: storyIDs)
}
.scan([]) { stories, story -> [Story] in
stories + [story]
}
.map{ $0.sorted() }
.eraseToAnyPublisher()
}
光标放在 eraseToAnyPublisher 后面,按 esc ,能看到最后的类型
我的妈,就不能简化下吗
希望能向 RXSwift 学习下吧,别嵌套这么多层了,看着眼晕😵💫
1
ostholz 2022-07-08 15:02:04 +08:00 1
确实 RxSwift 更直观一些. Combine 看着眼累
|
2
ansonsiva 2022-07-08 15:11:58 +08:00
能不用就不用,哈哈哈,必须要用就用别人的😂
|