首页 > 解决方案 > 调用 'subscribe(onNext:onError:onCompleted:onDisposed:)' 的结果未使用

问题描述

我正在尝试使用 RxAlamofire 创建返回 Observable<(HTTPURLResponse, Any)> 的函数:

func getResponse(credentialData: Credentials, ulr: String)->Observable<(HTTPURLResponse, Any)>{
        let credentialData = "\(credentialData.username):\(credentialData.password)".data(using: String.Encoding(rawValue: String.Encoding.utf8.rawValue))!
        let base64Credentials = credentialData.base64EncodedString()
        let headers = ("Authorization", "Basic \(base64Credentials)")
        let header = HTTPHeaders.init(dictionaryLiteral: headers)

        return Observable.create{ observer in
            requestJSON(.get, ulr, parameters: nil, encoding: JSONEncoding.default, headers: header)
            .subscribe(onNext: { response in
                observer.onNext(response)
                } ,
        onError: { error in
            observer.onError(error)
            })
        return Disposables.create()
        }
    }    
}

但我收到以下警告:-

调用 'subscribe(onNext:onError:onCompleted:onDisposed:)' 的结果未使用

如何解决?添加.disposed(by: disposeBag)我的功能后不起作用。

标签: swiftrx-swiftrxalamofire

解决方案


您好,您必须将您的请求添加到DisposeBag

return Observable.create { observer in
        requestJSON(.get, ulr, parameters: nil, encoding: JSONEncoding.default, headers: header)
            .subscribe(onNext: { response in
                observer.onNext(response)
            }, onError: { error in
                observer.onError(error)
            }).disposed(by: disposeBag)
        return Disposables.create()
    }

那应该行得通。


推荐阅读