2017-04-05 3 views
2

の結果が含まれている私はネットワーク要求の結果をラップするRxAlamofireで動作するようにしようとしているこんにちはは、ネットワーク要求

私の目標は、どちらか含まれていること、要求を発射JSON応答を処理して作成することで、観察可能ネットワーク操作の成功または何らかのエラーが発生する。他の場所で

私は、エラーメッセージで観察を作成する関数を呼び出すと、それに加入し、それが成功したか失敗であるかどうかをユーザーに通知することができ

私の実装では、怒鳴る

func discoverMovieList(for url: String, withPagg page: Int) -> Observable<Any> { 
     let requestUrl = "\(url)&page=\(page)" 

     return RxAlamofire.json(.get, requestUrl) 
      .map{ jsonResponse in 
        self.createOrUpdateMoviesList(from: JSON(jsonResponse)) 
       } 
    } 

どのように私たちすることができますですコードを修正し、プロセスの結果を他の場所からどのように呼び出すかを通知します。ヘルプは非常に感謝しています。ありがとう!

+0

誰でも助けることができますか? –

+0

誰か理想的ですか? –

+0

問題は現在の実装で明示できますか? – tomahh

答えて

0

subscribeメソッドを使用して提供する、複数のライフサイクルコールバックを定義できます。この例では、使用量がこのようなものになるだろう:

discoverMovieList(for: "http://some.url", withPagg: 2) 
    .subscribe(
    onNext: { movies in 
     uiElement.string = "Movie list received" 
    }, 
    onError: { error in 
     uiElement.string = "Something went wrong" 
    } 
) 
    .disposed(by: disposeBag) 

disposeBagは、サブスクリプションを保持するために使用されているので、disposeBagが解除されると、サブスクリプションがキャンセルされた(私たちの場合には、ネットワーク呼び出しが中止されることになります)。

+0

ありがとうございます。私のself.createOrUpdateMoviesList(from:JSON(jsonResponse))は、jsonResponseからのcoredataを更新します(何も返しません)。つまり、コアデータの更新が完了したときに別の要求を発しますか?最初の場所でマップを使用していない可能性がありますか? –

+0

こんにちはあなたは提案がありますか? –

関連する問題