我有这样的代码
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 类型是等价的
很清楚,因为Justhas NeverasFailure和.flatMaprequires Erroras Failure,所以Never!=Error
我看到两种方法:
使用正确的Publisher,而不是
Just,但我没有找到合适的人选。使用像
.mapError,之类的运算符.mapError { $0 as Error },但我不确定这是个好主意。
任何想法如何处理它?
更新:
使用起来更有意义
.setFailureType(to: Error.self)
或者
.mapError { $0 as Error }