RxJava操作符实践:7_条件和布尔操作之7_all

一、描述

判定是否Observable发射的所有数据都满足某个条件。

传递一个谓词函数给All操作符,这个函数接受原始Observable发射的数据,根据计算返回一个布尔值。All返回一个只发射一个单个布尔值的Observable,如果原始Observable正常终止并且每一项数据都满足条件,就返回true;如果原始Observable的任何一项数据不满足条件就返回False。

RxJava将这个操作符实现为all,它默认不在任何特定的调度器上执行。

二、示意图

all

三、示例代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Observable.just(1, 2, 3, 4, 5)
.all(new Func1<Integer, Boolean>() {
@Override
public Boolean call(Integer integer) {
return integer < 10;
}
})
.subscribe(new Subscriber<Boolean>() {
@Override
public void onCompleted() {
System.out.println("onCompleted.");
}

@Override
public void onError(Throwable e) {
System.out.println("onError: " + e.getMessage());
}

@Override
public void onNext(Boolean aBoolean) {
System.out.println("onNext: " + aBoolean);
}
});

四、运行结果

1
2
onNext: true
onCompleted.

由于所有数据都小于10,符合判断条件,所以结果返回true。

五、参考资料

ReactiveX官方文档

ReactiveX文档中文翻译

PS:欢迎关注 SherlockShi 个人博客

感谢你的支持,让我继续努力分享有用的技术和知识点!