2017-04-05 93 views
2

嗨,我試圖與RxAlamofire合作,包裝一個網絡請求結果的結果使用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

Observable定義了使用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(來自:JSON(jsonResponse))只從jsonResponse更新coredata(它什麼都不返回)我們如何鏈接響應。即當更新核心數據完成時觸發另一個請求?一開始可能沒有使用地圖? –

+0

嗨你有什麼建議嗎? –