【发布时间】:2016-06-05 22:53:10
【问题描述】:
我需要检查它是否在数据库加载中退出并传递给查看 如果不 从服务器加载,存储在数据库中,然后传递给视图 我对 doOnNext()、flatMap() 方法感到困惑,我不知道该使用哪一个
看不懂doOnNext()、flatMap()方法的含义
【问题讨论】:
标签: android rx-android
我需要检查它是否在数据库加载中退出并传递给查看 如果不 从服务器加载,存储在数据库中,然后传递给视图 我对 doOnNext()、flatMap() 方法感到困惑,我不知道该使用哪一个
看不懂doOnNext()、flatMap()方法的含义
【问题讨论】:
标签: android rx-android
我会尽力帮助您使用此运算符。
正如文档中关于 doOnNext() 的说明
修改源 Observable 以便在它调用一个动作时 来电
因此请查看此示例:
public class ExampleUnitTest {
@Test
public void testSample() throws Exception {
Observable.just(1,2,3,4,5)
.doOnNext(number -> System.out.println("doOnNext: " + number))
.subscribe(number -> System.out.println("onNext: " + number));
}
}
它将打印:
doOnNext: 1
onNext: 1
doOnNext: 2
onNext: 2
doOnNext: 3
onNext: 3
doOnNext: 4
onNext: 4
doOnNext: 5
onNext: 5
flatMaps 呢?让我们再次检查文档:
返回一个 Observable,该 Observable 根据应用函数发出项目 您提供给源 Observable 发出的每个项目,其中 该函数返回一个 Observable,然后合并那些结果 Observables 并发出这次合并的结果。
因此,flatMap 基于原始流发出的每个项目创建一个新流,并将这些新流合并为一个。
让我们再看一段代码:
public class ExampleUnitTest {
@Test
public void testSample() throws Exception {
Observable.just(1, 2, 3, 4, 5)
.flatMap(number -> {
final String first = number + "A";
final String second = number + "B";
return Observable.just(first, second);
})
.subscribe(flattedItem -> System.out.println("onNext: " + flattedItem));
}
}
它将打印:
onNext: 1A
onNext: 1B
onNext: 2A
onNext: 2B
onNext: 3A
onNext: 3B
onNext: 4A
onNext: 4B
onNext: 5A
onNext: 5B
希望对你有帮助!
最好的问候。
【讨论】: