swift - 调用 '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)
我的功能后不起作用。
解决方案
您好,您必须将您的请求添加到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()
}
那应该行得通。
推荐阅读
- android - 如果使用整数,如何删除结果中的 .0 或 E 或停止崩溃
- vb.net - 如何在windows的复制/粘贴中保留变量(CTRL+C代码中的变量)
- face-recognition - 选择权重进行加权损失计算的逻辑?
- mysql - 如果字段的值为 0 或 1,如何选择 sum?
- java - 方法不返回字符串
- sql - 如何在 SQL Server 中使用 where 条件对从一年到另一年的数据求和,即从财政年度到下一年?
- flutter - Flutter 的深色模式颜色
- vb.net - 使用资源中的 .txt 文件并将随机行复制到文本框
- javascript - localhost 不为我使用的路由器和控制器输出 JSON
- python - 错误:指定“socksProxy”需要一个整数作为“socksVersion”,在任何地方都找不到