2017-05-03 53 views
0

我在我的swift应用中使用Moya进行网络请求。如何在订阅Observable时获取onNext情况下的状态码

我以前用过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) 

在。接下来的情况下我也想找回状态代码和response.data。

我能够这样做,当observable是类型的响应,但是当我把它映射到Post类型时,我无法获得状态码。

我怎样才能获得请求的。接下来或错误的情况下的状态代码

任何帮助将不胜感激。谢谢。

回答

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

相关问题