首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用RxAlamofire创建包含网络请求结果的观察值

使用RxAlamofire创建包含网络请求结果的观察值
EN

Stack Overflow用户
提问于 2017-04-06 00:37:46
回答 1查看 1.4K关注 0票数 2

我正在尝试使用RxAlamofire来包装网络请求结果。

我的目标是触发请求,处理JSON响应,并创建包含网络操作成功或任何错误发生的可观察对象。

在其他地方,我可以调用创建可观察对象的函数并订阅它,并通过错误消息通知用户它是成功还是失败。

我的实现如下:

代码语言:javascript
复制
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))
                }
    }

我们如何纠正代码,以及如何从其他地方调用它来通知过程的结果?

EN

回答 1

Stack Overflow用户

发布于 2017-04-06 15:56:16

Observable定义使用subscribe方法提供的多个生命周期回调。在本例中,用法如下所示:

代码语言:javascript
复制
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
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43236932

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档