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