過濾 操作符|時(shí)間控制 操作符|(計(jì)算?&?減少 &?數(shù)學(xué) 操作符)
過濾?操作符
compactMap & tryCompactMap - 類似map,但會過濾掉nil(不符合規(guī)則)的元素

removeDuplicates & tryRemoveDuplicates - 過濾連續(xù)的同樣的數(shù)據(jù),比如6,6,7,6,發(fā)送的是6,7,6

replaceError - 使用默認(rèn)的一個(gè)錯(cuò)誤,替換上游發(fā)出的錯(cuò)誤。

replaceEmpty - 替換不發(fā)送數(shù)據(jù)的Empty的Publisher

replaceNil - 替換nil的數(shù)據(jù)

filter & tryFilter - 過濾不符合規(guī)則的元素

時(shí)間控制?操作符
delay - 接受到值后延遲多久再發(fā)送

debounce - 接受到值后啟動定時(shí)器,定時(shí)器結(jié)束之前,來新的值了,重置計(jì)時(shí)器時(shí)間,直到計(jì)時(shí)器結(jié)束后發(fā)送 - 比如實(shí)時(shí)搜索框

throttle - 在指定的時(shí)間內(nèi),連續(xù)的收到數(shù)據(jù)(如果有短暫不收到數(shù)據(jù),會發(fā)送這次數(shù)據(jù),并重新開始),會發(fā)送第一個(gè)或者最后一個(gè)數(shù)據(jù),發(fā)送- 比如實(shí)時(shí)搜索框

measureInterval - 用于調(diào)試的操作符,計(jì)算兩次值發(fā)出的時(shí)間間隔,單位是納秒(1000000000)

?timeout - 在指定時(shí)間內(nèi)收到值,如果沒收到,超時(shí),發(fā)送completion結(jié)束,如果收到了,重新開始timeout

collect(.byTime(DispatchQueue.main,.seconds(collectTimeStride)) - 每隔一段事件收集數(shù)據(jù),變成數(shù)組發(fā)送

計(jì)算 | 減少 | 數(shù)學(xué) 操作符
collect - 按照指定元素個(gè)數(shù)拆分為合適的集合

reduce & tryReduce - 執(zhí)行閉包,記錄上次的閉包結(jié)果

ignoreOutput - 忽略receive收到的值,只關(guān)心完成結(jié)果

max & tryMax & min & tryMin - 記錄序列里最大(小)的值,并發(fā)送結(jié)果,要求原始序列是已完成的序列

count - 記錄原始序列里發(fā)出的值的個(gè)數(shù),并發(fā)送結(jié)果,要求原始序列是已完成的序列
