过滤型操作符的作用:过滤 或者 筛选 被观察者发送的事件 和 观察者接受的事件
1、根据条件 过滤事件
(1)、Filter()
作用:过滤 特定的条件
例子:
运行结果:
(2)ofType
作用:筛选 特定数据类型数据
实例:
运行结果:
(3)skip()跳关正序某个事件 / skipLast() 跳过倒叙的某一个事件
运行结果:
(4)、distinct() / distinctUntilChanged()
作用:过滤事件序列中重复的事件 / 连续重复的事件
distinct示例:
运行结果:
distinctUntilChanged():去掉连续重复的示例
运行结果:
2、根据 指定事件数量 过滤事件
(1)take:作用:指定观察者最多能够接受事件的数量
运行结果:
(2)takeLast
作用:指定观察者只能接收的最后几个事件
运行结果:
3、根据指定的时间 过滤条件
(1)throttleFirst
作用:在某段时间内,只能发送该段时间内的第一次事件
运行结果:
(2)throttleLast
作用:在某段时间内,只能发送该段时间内的 最后一次事件
运行结果:
(3)、sample:在某段时间内,只发送该段时间内的最新(最后)的事件,和throttleLast()类似
(4)、throttleWithTimeout() / debounce()
作用:发送数据事件时,若2次发送事件的时间间隔 小于 指定的时间,就会丢失前一次的数据,直到指定时间内都没有新的数据发射才会发送后一次的数据.
运行结果:
4、根据 指定事件位置 过滤事件
(1)、firstElement / lastElement
作用:仅选取第1个元素 或者 最后一个元素
运行结果:
运行结果:
(2)、elementAt
作用:指定接收某一个元素
运行结果:
elementAt() 允许越界:
运行结果:
(3)、elementAtOrError
作用:当elementAt()出现越界的时候抛出的异常
运行结果: