映射到 AnyPublisher Void

map to AnyPublisher Void

我有一个像这样接受发布者参数的函数

func runPublisher(publisher: AnyPublisher<Void, Error>, shouldLoad: Bool = true) {

}

当我尝试转换为发布者时,出现此错误

let publisher = provider.check(credentials: cred)
            .eraseToAnyPublisher()
            .tryMap({ (data) in
            })
            .mapError({ (error) -> Error in
                return error
            })
            .map { _ in

                return ()
            }

runPublisher(publisher: publisher)

我收到错误

Cannot convert value of type 'Publishers.Map<Publishers.MapError<Publishers.TryMap<AnyPublisher<BaseResponseData<AuthResponse>, MoyaError>, ()>, Error>, ()>' to expected argument type 'AnyPublisher<Void, Error>'

您需要使用 .eraseToAnyPublisher

let publisher = provider.check(credentials: cred)
        .tryMap({ (data) in
        })
        .mapError({ (error) -> Error in
            return error
        })
        .map { _ in

            return ()
        }
.eraseToAnyPublisher()