我需要检查它是否在DB加载中退出并传递给视图 如果不 从服务器加载,存储在数据库中,然后传递给视图 我在方法doOnNext(),flatMap()中混淆,我没有使用哪个
我无法理解doOnNext(),flatMap()
方法的含义答案 0 :(得分:2)
我会尽力帮助您使用此操作符。
正如文档所述,关于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,然后合并那些结果 可观察并发布此次合并的结果。
因此,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
希望它能帮助你兄弟!
最好的问候。