亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Flux.repeat() 不重復

Flux.repeat() 不重復

慕碼人2483693 2023-02-23 10:02:13
我正在嘗試像這樣在 Flux 上重復訂閱:    DirectProcessor<String> stringDirectProcessor = DirectProcessor.create();     stringDirectProcessor             .repeat(3)             .subscribe(item -> System.out.println(item));     stringDirectProcessor.onNext("one");     stringDirectProcessor.onNext("two");     stringDirectProcessor.onNext("three");     stringDirectProcessor.onComplete();我的期望是看到這個輸出:one two three one two three one two three one two three但我只得到one two three但是,如果我使用Flux.just()而不是DirectProcessor我得到預期的輸出。怎么了?
查看完整描述

1 回答

?
翻閱古今

TA貢獻1780條經驗 獲得超5個贊

這是 的預期行為DirectProcessor。我剛剛通讀了文檔,發現了以下有關的內容DirectProcessor

一旦處理器終止(通常通過其接收器的 error(Throwable) 或 complete() 方法被調用),它允許更多訂閱者訂閱但立即向他們重播終止信號。

因此,由于repeat簡單地重新訂閱,onComplete處理程序將立即被調用。你確定你需要嗎DirectProcessor?

編輯:這里也記錄了這種行為

注意:如果沒有訂閱者,上游項將被丟棄,只保留終端事件。終止的 DirectProcessor 將向遲到的訂閱者發出終端信號。


查看完整回答
反對 回復 2023-02-23
  • 1 回答
  • 0 關注
  • 182 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號