如果乙個操作符是專屬於原文出處:flux
或mono
的,那麼會給它註明字首。公共的操作符沒有字首。如果乙個具體的用例涉及多個操作符的組合,這裡以方法呼叫的方式展現,
會以乙個點(.)開頭,並將引數置於圓括號內,比如:
.methodcall(parameter)
。
參考:
1)建立乙個新序列,它...
發出乙個t
,且還是由just
方法返回
發出許多t
,這些元素我可以明確列舉出來:flux#just(t...)
基於迭代資料結構:
基於乙個引數值給出的源:
直接完成:empty
立即生成錯誤:error
什麼都不做:never
訂閱時才決定:defer
依賴乙個可**的資源:using
可程式設計地生成事件(可以使用狀態):
2)對序列進行轉化
我想新增一些資料元素到乙個現有的序列:
我想將flux
轉化為集合(一下都是針對flux
的)
我想合併 publishers...
只取各個序列的第乙個元素:flux#first
,mono#first
,mono.or
(othermono).or(thirdmono),`flux.or(otherflux).or(thirdflux)
由乙個序列觸發(類似於flatmap
,不過「喜新厭舊」):switchmap
由每個新序列開始時觸發(也是「喜新厭舊」風格):switchonnext
我想重複乙個序列:repeat
我有乙個空序列,但是...
我有乙個 mono 但我想延遲完成...
我想基於乙個遞迴的生成序列的規則擴充套件每乙個元素,然後合併為乙個序列發出:
3)「窺視」(唯讀)序列
所有型別的訊號(signal
):flux#dooneach
所有結束的情況(完成complete、錯誤error、取消cancel):dofinally
記錄日誌:log
我想知道所有的事件:
轉化為一行日誌:log
4)過濾序列
我只想要一部分序列:
從序列的最後乙個元素倒數:flux#takelast
直到滿足某個條件(包含):flux#takeuntil
(基於判斷條件),flux#takeuntilother
(基於對 publisher 的比較)
直到滿足某個條件(不包含):flux#takewhile
最多隻取 1 個元素:
給定序號:flux#elementat
最後乙個:.takelast(1)
跳過一些元素:
從序列的第乙個元素開始跳過:flux#skip(long)
跳過最後的 n 個元素:flux#skiplast
直到滿足某個條件(包含):flux#skipuntil
(基於判斷條件),flux#skipuntilother
(基於對 publisher 的比較)
直到滿足某個條件(不包含):flux#skipwhile
取樣:給定取樣週期:flux#sample(duration)
基於另乙個 publisher:flux#sample(publisher)
基於 publisher「超時」:flux#sampletimeout
(每乙個元素會觸發乙個 publisher,如果這個 publisher 不被下乙個元素觸發的 publisher 覆蓋就發出這個元素)
我只想要乙個元素(如果多於乙個就返回錯誤)...
5)錯誤處理
我想要類似 try/catch 的表達方式:
我想從錯誤中恢復...
我想處理回壓錯誤(向上游發出「max」的 request,如果下游的 request 比較少,則應用策略)...
6) 基於時間的操作
如果元素間延遲過長則中止序列:timeout
以固定的週期發出元素:flux#interval
在乙個給定的延遲後發出0
:staticmono.delay
.
我想引入延遲:
7)拆分flux
我想將乙個flux
的元素拆分到集合...
以時間為界:buffer(duration)
以個數或時間為界:buffertimeout(int, duration)
基於對元素的判斷條件:bufferuntil(predicate)
通過另乙個 publisher 的每乙個 onnext 訊號來拆分序列:buffer(publisher)
,bufferwhen
拆分到指定型別的 "collection":buffer(int, supplier)
我想將flux
中具有共同特徵的元素分組到子 flux:groupby(function)
(注意返回值是flux>
,每乙個groupedflux
具有相同的 key 值k
,可以通過key()
方法獲取)。
8)回到同步的世界
我有乙個mono
,我想:
reactor 3 程式設計筆記二
參考資料 1 reactor 核心類 1.1 publisher public inte ce publisher publisher 代表訊息的傳送方 subscribe 傳入乙個subscriber,建立乙個生產和消費的連線,即subscription publisher可以有多個subscri...
看文件學爬蟲 3 CSS選擇器
什麼是css選擇器 一種快速定位元素的方法 css選擇器的基本用法 用法示例 說明 解釋 選擇所有元素 class.intro 解釋 選擇所有class intro 的元素 id firstname 解釋 選擇所有id firstname 的元素 elementp 解釋 選擇所有 p 元素 not ...
3D設計軟體中如何建立重合參考平面?
3d設計師在產品設計過程中,當需要在3d空間內繪製2d草圖時,便會用到參考平面。那麼,如何在3d設計軟體中建立重合參考平面呢?由浩辰cad公司研發的浩辰3d設計軟體中提供了更智慧型高效的建立重合參考平面功能,下面和小編一起來了解一下吧!在圖形視窗中,選擇平的面或現有參考平面。當根據模型上的平的面建立...