如何将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() }