我有这样的代码
func request(request: URLRequest) -> AnyPublisher<Data, Error> {
return Just(request)
.flatMap { request in
RequestManager.request(request) // returns AnyPublisher<Data, Error>
}
.eraseToAnyPublisher()
}
我收到编译错误:
实例方法 flatMap(maxPublishers:_:) 要求 Just.Failure(又名 Never)和 Error 类型是等价的
很清楚,因为Just
has Never
asFailure
和.flatMap
requires Error
as Failure
,所以Never
!=Error
我看到两种方法:
使用正确的Publisher,而不是
Just
,但我没有找到合适的人选。使用像
.mapError
,之类的运算符.mapError { $0 as Error }
,但我不确定这是个好主意。
任何想法如何处理它?
更新:
使用起来更有意义
.setFailureType(to: Error.self)
或者
.mapError { $0 as Error }