首页 > 解决方案 > 如何将 RX.Observable 转换为 IO.reactivex.Observable

问题描述

我正在使用 rxjava jdbc 库但使用 rx1 支持的库查询数据库。

rx.Observable<T> rx1 =Database.from(url, user,password).autoMap(resultType);

我正在尝试将其转换为

io.reactivex.Observable.fromIterable(BlockingObservable.from(rx1).toIterable());

但它不起作用我可以得到 RX Java 2 的等效代码吗?我的意思是我想返回io.reactivex.Observable<T> 而不是返回rx.Observable<T>

谢谢您的帮助。

标签: rx-javarx-java2

解决方案


您可以使用该RxJavaInterop库在 RxJava1 和 RxJava2 类型之间进行转换。它提供了在两个版本支持的所有不同反应类型之间进行转换的功能。在您的情况下,您可以像这样将 RxJava1 转换Observable为 RxJava2 Observable

io.reactivex.Observable<T> rx2 = RxJavaInterop.toV2Observable(rx1);

该库由 RxJava 项目本身的主要开发人员维护,因此您可以确信它是可靠的。请务必使用 v0.x 分支中的库版本 - 更新的版本 (3.x) 用于在 RxJava1 和 RxJava3 之间进行转换。


推荐阅读