Rx操作符

Rx操作符

1、Observable.from()方法,它接收一个集合作为输入,然后每次输出一个元素给subscriber:

Observable.from("url1", "url2", "url3")
.subscribe(url -> System.out.println(url));

2、Observable.flatMap()接收一个Observable的输出作为输入,同时输出另外一个Observable。直接看代码:

query("Hello, world!")
.flatMap(new Func1<List<String>, Observable<String>>() {
@Override
public Observable<String> call(List<String> urls) {
return Observable.from(urls);
}
})
.subscribe(url -> System.out.println(url));

3、getTitle()返回null如果url不存在。我们不想输出"null",那么我们可以从返回的title列表中过滤掉null值!

query("Hello, world!")
.flatMap(urls -> Observable.from(urls))
.flatMap(url -> getTitle(url))
.filter(title -> title != null)
.subscribe(title -> System.out.println(title));

4、take()输出最多指定数量的结果。

  doOnNext()允许我们在每次输出一个元素之前做一些额外的事情,比如这里的保存标题。

query("Hello, world!")
.flatMap(urls -> Observable.from(urls))
.flatMap(url -> getTitle(url))
.filter(title -> title != null)
.take()
.doOnNext(title -> saveTitle(title))
.subscribe(title -> System.out.println(title));

参考:http://blog.csdn.net/lzyzsd/article/details/44094895

上一篇:Kali Linux 初始化配置:Apache2 /SSH /FTP


下一篇:Intellij IDEA debug模式下项目启动慢/无法启动的事件解决过程记录