Combine - Operator(操作符)(三)

过滤 操作符|时间控制 操作符|(计算 & 减少 & 数学 操作符)


过滤 操作符

compactMap & tryCompactMap - 类似map,但会过滤掉nil(不符合规则)的元素

removeDuplicates & tryRemoveDuplicates - 过滤连续的同样的数据,比如6,6,7,6,发送的是6,7,6

replaceError - 使用默认的一个错误,替换上游发出的错误。

replaceEmpty - 替换不发送数据的Empty的Publisher

replaceNil - 替换nil的数据

filter & tryFilter - 过滤不符合规则的元素

时间控制 操作符

delay - 接受到值后延迟多久再发送

debounce - 接受到值后启动定时器,定时器结束之前,来新的值了,重置计时器时间,直到计时器结束后发送 - 比如实时搜索框

throttle - 在指定的时间内,连续的收到数据(如果有短暂不收到数据,会发送这次数据,并重新开始),会发送第一个或者最后一个数据,发送- 比如实时搜索框

measureInterval - 用于调试的操作符,计算两次值发出的时间间隔,单位是纳秒(1000000000)

 timeout - 在指定时间内收到值,如果没收到,超时,发送completion结束,如果收到了,重新开始timeout

collect(.byTime(DispatchQueue.main,.seconds(collectTimeStride)) - 每隔一段事件收集数据,变成数组发送

计算 减少 数学 操作符

collect - 按照指定元素个数拆分为合适的集合

reduce & tryReduce - 执行闭包,记录上次的闭包结果

ignoreOutput - 忽略receive收到的值,只关心完成结果

max & tryMax & min & tryMin - 记录序列里最大(小)的值,并发送结果,要求原始序列是已完成的序列

count - 记录原始序列里发出的值的个数,并发送结果,要求原始序列是已完成的序列



上一篇:Combine - Operator(操作符)(二)

下一篇:Combine - Operator(操作符)(四)(完结)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容