3

RxSwiftwrapを使用するネットワーク クライアントがあるとしますURLSession

ステートメントを使用してエラーを返したいのguardですが、エラーが発生しています

非 void 関数は値を返す必要があります

これは理にかなっていますが、 でこれを処理する方法がわかりませんRxSwift

class NetworkClient {
    var task: URLSessionDataTask = URLSessionDataTask()
    var session: SessionProtocol = URLSession.shared
    var request: URLRequest?

    func call<T: Codable>(_ request: URLRequest) -> Single<T> {
        return Single<T>.create(subscribe: { [weak self] observer -> Disposable in
            guard let `self` = self else { observer(.error(NSError(domain: "", code: 0, userInfo: [:]))); return }
            self.task = self.session.dataTask(with: request, completionHandler: { data, response, error in

            })


            return Disposables.create {
                self.task.cancel()
            }
        })
    }

}
4

1 に答える 1