Зачем использовать метод responseWith? - PullRequest
0 голосов
/ 06 июля 2019

В процессе чтения исходного кода RXAlamofire есть место, которое я не очень хорошо понимаю.

Поскольку этот метод является наблюдаемым объектом для создания DataRequest, зачем вызывать метод responseWith?

func request<R: RxAlamofireRequest>(_ createRequest: @escaping (SessionManager) throws -> R) -> Observable<R> {
        return Observable.create { observer -> Disposable in
            let request: R
            do {
                request = try createRequest(self.base)
                observer.on(.next(request))


                request.responseWith(completionHandler: { response in
                    if let error = response.error {
                        observer.on(.error(error))
                    } else {
                        observer.on(.completed)
                    }
                })

                if !self.base.startRequestsImmediately {
                    request.resume()
                }

                return Disposables.create {
                    request.cancel()
                }
            } catch {
                observer.on(.error(error))
                return Disposables.create()
            }
        }
    }

1 Ответ

0 голосов
/ 06 июля 2019

Я считаю, что авторы RXAlamofire используют это в качестве соглашения. Если вы посмотрите на запрос , реализация Все методы запроса возвращают результат метода responseXYZ. Методы ответа обычно выполняют запрос и отвечают чем-то (JSON, String и т. Д.) Звучит немного запутанно, но похоже на этот запрос, когда некоторые данные что-то отвечают.

...