Запрос к серверу с помощью Alamofire и Combine в Xcode 11 Beta 3 - PullRequest
0 голосов
/ 10 июля 2019

Я пытаюсь выполнить запрос к серверу, использующему Alamofire, следующий код хорошо работал в Xcode 11 beta 2, но, начиная с версии beta 3, я получаю сообщение об ошибке

Member 'init' in 'AnyPublisher<Root, APIServiceError>' produces result of type 'AnyPublisher<Output, Failure>', but context expects 'AnyPublisher<Root, APIServiceError>'

 func getResponse(from url: URL) -> AnyPublisher<Root, APIServiceError> {
        return .init { subscriber in
            Alamofire.request(url.absoluteString)
                .responseData { response in
                    switch response.result {
                    case .success:
                        do {
                            let serverResponse = try JSONDecoder().decode(Root.self, from: response.data!)
                            _ = subscriber.receive(serverResponse)
                        } catch (let error) {
                            subscriber.receive(completion: .failure(.parseError(error)))
                        }
                    case .failure(let error):
                        subscriber.receive(completion: .failure(.responseError))
                    }
            }
        }
    }

Они изменили init для AnyPublisher на

public struct AnyPublisher<Output, Failure> where Failure : Error {

/// Creates a type-erasing publisher to wrap the provided publisher.
///
/// - Parameters:
///   - publisher: A publisher to wrap with a type-eraser.
@inlinable public init<P>(_ publisher: P) where Output == P.Output, Failure == P.Failure, P : Publisher
 }

, но я не мог понять, как его использовать ....

...