我在我的swift应用程序中使用Moya来处理网络请求。
我之前使用过alamofire,我熟悉如何发帖,获取请求和阅读回复。
以下是我提出请求并订阅可观察
的代码provider.request(.getDetails)
.mapArray(Post.self)
.subscribe { event -> Void in
switch event {
case .next(let post):
self.sampleText.text = posts.first?.title
case .error(let error):
print(error)
default:
break
}
}.addDisposableTo(disposeBag)
在.next的情况下,我还想检索状态代码和response.data。
当observable的类型为Response时,我可以这样做,但是当我将它映射到Post类型时,我无法获取状态代码。
如何在.next或错误案例中获取请求的状态代码
任何帮助将不胜感激。谢谢。
答案 0 :(得分:0)
也许这样?使用zip
:
let provider: RxMoyaProvider<Api> = RxMoyaProvider<Api>()
let observable1: Observable<Response> = provider
.request(.getDetails)
.shareReplay(1)
let observable2: Observable<[Post]> = observable1
.map({ _ in () }) // You map to Post.self here
.shareReplay(1)
Observable
.zip(observable1, observable2){($0, $1)}
.subscribe({ (event) in
// event has Response + Posts array
})
combineLatest
也可以像zip