如何将Observable对象映射为Flowable <?>?
private Observable< SimpleResource > resource; return resource.map(new Function<SimpleResource, Flowable<Data>>() { @Override public Flowable< Data > apply(SimpleResource resource) throws Exception { return resource.data().toFlowable(); } }); Single<Data> data();
我需要Flowable,但是我的结果是Observable>
既然你提到data()
返回一个Single
,你需要把所有的单个流转换成一个大的流。 为了将流转换为流,我们通常使用flatmap
运算符:
resource.flatMapSingle( new Function<SimpleResource, Single<Data>>() { @Override public Single<Data> apply(SimpleResource resource) throws Exception { return resource.data(); } } ).toFlowable(BackpressureStrategy.BUFFER);
你做错了什么是应用.toFlowable
在不正确的位置。
Observable.fromCallable { 1 }.map { it * 2 }.toFlowable(BackpressureStrategy.BUFFER)
如果你有不同的数据类型返回的数据类型(抱歉,Kotlin,但概念是相同的)
data class A( val data: Single<Int> ) { constructor() : this(data = Single.fromCallable { 1 }) } val result: Flowable<Int> = Flowable .fromCallable { A() } .flatMap { it.data.toFlowable() }
- 带有ListView的SearchView更改项目位置,需要其他活动的确切项目ID
- 应用程序build.gradle.kts文件未解决参考Erros
- JVM和JavaScript的无头单源库
- 带有可点击链接的Android TextView:如何捕获点击?
- 如何在回收视图中为自定义ViewHolder实现OnClickListener?
- Gradle错误 – 当我在单个Kotlin文件或特定测试函数上运行unit testing时
- 从BottomSheetDialog获取BottomSheetBehaviour
- 在新的Android Studio项目中配置Kotlin
- 用RecyclerView + AppBarLayout投掷