gpt4 book ai didi

ios - RxAlamofire扩展程序可在一处处理错误

转载 作者:行者123 更新时间:2023-12-01 22:06:40 28 4
gpt4 key购买 nike

以下是我执行RxAlamofire请求的代码

 RxAlamofire.request(request as URLRequestConvertible).validate(statusCode: 200..<300).responseJSON().asObservable()
.subscribe(onNext: { [weak self] (response) in
if let json = response.data {
let jsonResult = JSON(json)
let foodMenuResult = MenuResult(jsonResult)
self?.delegate?.showMenu(menuResult: foodMenuResult)

}

}, onError: { [weak self] (error) in
// print(error.localizedDescription)
UIViewController().logAPIError(error: error)
self?.delegate?.onError(MenuViewController.REQUEST_MENU)
},onCompleted: {})
.disposed(by: disposeBag)

我想编写与Observable相关的扩展名,以便我可以在一个地方处理错误,而不是在每个onError上编写相同的代码

我该怎么做?

最佳答案

这是最明显的解决方案:

func myRequest(_ request: URLRequestConvertable) -> Observable<T> {
return RxAlamofire.request(request as URLRequestConvertible)
.validate(statusCode: 200..<300)
.responseJSON()
.asObservable()
.do(onError: { /* do the thing you want to always do */ })
}

我不使用alamofire,而是将上面的 T替换为代码发出的任何类型。

关于ios - RxAlamofire扩展程序可在一处处理错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59680603/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com