2017-04-05 54 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

嗨你有什么建议吗? –