RxJava系列-条件型操作符实战

# all()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
private void learnRxAll() {

Observable.just("1", "2", "3", "4")
.all(new Predicate<String>() {
@Override
public boolean test(String pS) throws Throwable {
return !pS.equals("c");
}
}).subscribe(new Consumer<Boolean>() {
@Override
public void accept(Boolean pBoolean) throws Throwable {
Log.d("条件型操作符 all", "accept: ----> " + pBoolean);
}
});

// 2020-04-04 22:54:14.364 25017-25017/com.example.learnrxjava D/条件型操作符 all: accept: ----> true
}

条件型操作符 all() 只有上游发射的事件都满足 true 才完下游发射 true, 如果有一个事件不满足,则返回 false

# any()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

private void learnRxAny() {

Observable.just("JavaSE", "C++", "C", "Java")
.any(new Predicate<String>() {
@Override
public boolean test(String pS) throws Throwable {
return pS.equals("Android");
}
})
.subscribe(new Consumer<Boolean>() {
@Override
public void accept(Boolean pBoolean) throws Throwable {
Log.d("条件型操作符 any", "accept: ----> " + pBoolean);
}
});

//04-05 17:46:12.981 9714-9714/com.example.learnrxjava D/条件型操作符 any: accept: ----> false
}

条件型操作符 any() 全部为 false 才是 false, 只有一个为 true 就是 true。如果在上游使用了条件操作符,那么在下游接收的类型是条件类型(boolean)。

本文标题:RxJava系列-条件型操作符实战

文章作者:

发布时间:2020年04月09日 - 09:04

最后更新:2021年06月20日 - 19:06

原始链接:https://hndroid.github.io/2020/04/09/RxJava%E7%B3%BB%E5%88%97-%E6%9D%A1%E4%BB%B6%E5%9E%8B%E6%93%8D%E4%BD%9C%E7%AC%A6%E5%AE%9E%E6%88%98/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。