2017-05-03 33 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

相關問題