過濾 操作符|時(shí)間控制 操作符|(計(jì)算?&?減少 &?數(shù)學(xué) 操作符)
過濾?操作符
compactMap & tryCompactMap - 類似map契讲,但會(huì)過濾掉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 - 接受到值后啟動(dòng)定時(shí)器,定時(shí)器結(jié)束之前夯辖,來新的值了忠藤,重置計(jì)時(shí)器時(shí)間,直到計(jì)時(shí)器結(jié)束后發(fā)送 - 比如實(shí)時(shí)搜索框
throttle - 在指定的時(shí)間內(nèi)楼雹,連續(xù)的收到數(shù)據(jù)(如果有短暫不收到數(shù)據(jù),會(huì)發(fā)送這次數(shù)據(jù)尖阔,并重新開始)贮缅,會(huì)發(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é)果谭跨,要求原始序列是已完成的序列