I have such code
func request(request: URLRequest) -> AnyPublisher<Data, Error> {
return Just(request)
.flatMap { request in
RequestManager.request(request) // returns AnyPublisher<Data, Error>
}
.eraseToAnyPublisher()
}
and I'm getting compile error:
Instance method flatMap(maxPublishers:_:) requires the types Just.Failure (aka Never) and Error be equivalent
And it's clear, because Just
has Never
as Failure
and .flatMap
requires Error
as Failure
, so Never
!= Error
I see 2 approaches:
using right Publisher, instead of
Just
, but I didn't find good candidate for this.using some operator like
.mapError
,.mapError { $0 as Error }
, but I'm not sure that it's great idea.
Any ideas how to handle it?
UPDATE:
it makes more sense to use
.setFailureType(to: Error.self)
or
.mapError { $0 as Error }