2017-05-03 10 views
0

네트워크 요청을 위해 신속한 응용 프로그램에서 Moya를 사용하고 있습니다.Observable을 구독하는 동안 onNext 케이스에서 상태 코드를 얻는 방법

저는 이전에 alamofire를 사용해 왔으며 게시를하고 요청을 받고 응답을 읽는 방법에 익숙합니다. 내가 요청을하고 나는 또한 상태 코드와 response.data를 검색 할 다음 내용의 경우 관찰

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) 

에 가입하고 경우에 따라

코드입니다.

관측 가능 유형이 응답 인 경우 수행 할 수 있지만 입력 유형으로 매핑하면 상태 코드를 가져올 수 없습니다.

어떻게 어떤 도움을 이해할 수있을 것이다

다음 내용 또는 오류 경우 요청의 상태 코드를 얻을 수 있습니다. 고맙습니다.

답변

0

어쩌면 이렇게 될까요? zip 사용 :

또한 combineLatest
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 
    }) 

zip

과 같은 방법으로 도움이 될 수 있습니다