一、过滤型操作符
1、filter操作符
测试代码如下:
运行结果如下:
这里只打印了3。
总结:
- test方法,返回true,表示不过滤,直接发射到下游。
- test方法,返回false,表示过滤,不会发射到下游。
2、take操作符
测试代码如下:
运行结果如下:
总结:
- 需要配合定时器操作符才能体现take操作符的真正价值
- 当定时器执行take设置的个数后,就会停止计时。
3、distinct操作符
测试代码如下:
运行结果如下:
总结:
- 过滤掉重复的事件
4、elementAt操作符
测试代码如下:
运行结果如下:
总结:
- 只发送指定下标的事件
二、条件型操作符
1、all操作符
测试代码如下:
运行结果如下:
总结:
- 上游test()方法返回全部为true,下游才会为true,否则下游接收的为false
2、contains操作符
测试代码如下:
运行结果如下:
总结:
- 只要包含上游发送的事件,下游接收为true
3、isEmpty操作符
测试代码如下:
运行结果如下:
总结:
- 判断是否发射的数据为空,如果为空,返回true;如果不为空,返回false
4、any操作符
测试代码如下:
运行结果如下:
总结:
- 和all操作符相反,只要一个发射的数据满足条件,下游接收为true。只有当所有的发射的数据不满足条件,下游才为false。