【问题标题】:How to chain an Observable with a Single in RxJava?如何在 RxJava 中用 Single 链接 Observable?
【发布时间】:2019-02-10 21:27:05
【问题描述】:

我是 Rx 世界的新手,所以请多多包涵。

我的代码在 Kotlin 中,但 Java 代码也会有所帮助。

我有两种方法,其中一种是从数据库中加载任务,如果有任务,我想将它们发送到服务器。

fun getListFromDb(): Single<List<TaskEntity>> {
    return taskEntityDao.getAll()
}

 fun syncTasks(localTasks: TaskSyncRequest): Observable<ApiResponse<List<TaskEntity>>> {
    return taskServices.syncTasks(localTasks)
}

我知道我可以使用 flatmap 来链接 observables,但无法让它在 Single 和 Observables 之间工作。

【问题讨论】:

  • 您正在寻找 flatMapObservable 运算符。另外,如果这是一个 HTTP 网络调用,为什么它会返回一个 Observable?,如果它确实返回一个 Single 会更清楚地说明意图。
  • Single 表示单个项目,Observable - 项目序列。似乎您的 api 应该返回“单个”。无论如何,您可以轻松地将 observable 转换为 single,例如使用 singleOrError() 方法
  • 是的,这实际上是一个改造电话,而且他们所涵盖的几乎所有示例都使用 observables 而不是 single,如果我将它们更改为 single 会更好吗?如果是这样,这将解决我现在的问题

标签: rx-java rx-java2 flatmap rx-kotlin rx-kotlin2


【解决方案1】:

尝试使用flatMapObservable 您可以使用此方法将单个转换为可观察;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-08-06
    • 1970-01-01
    • 2017-08-03
    • 1970-01-01
    • 1970-01-01
    • 2017-11-12
    • 2019-05-10
    相关资源
    最近更新 更多