1 回答

TA貢獻(xiàn)1807條經(jīng)驗(yàn) 獲得超9個(gè)贊
感謝您的輸入并沒(méi)有直接思考,當(dāng)然只是有多個(gè)訂閱者,如下所示:
val flux = Flux.just("MyData1", "MyData2", "MyData3");
flux.doOnNext { println("Subscribing one$it") }.subscribe()
flux.doOnNext { println("Subscribing Two$it") }.subscribe()
將輸出:
Subscribing oneMyData1
Subscribing oneMyData2
Subscribing oneMyData3
Subscribing TwoMyData1
Subscribing TwoMyData2
Subscribing TwoMyData3
正如上面所建議的,有Share,但這個(gè) API 不允許設(shè)置最小訂閱者數(shù)量,因此最好調(diào)用下面的函數(shù),就我而言,我想等到我們有兩個(gè)訂閱者。文檔指出
首次訂閱的 Flux 會(huì)導(dǎo)致源 Flux 訂閱一次,因此遲到的訂閱者可能會(huì)錯(cuò)過(guò)項(xiàng)目。
val flux = Flux.just("MyData1", "MyData2", "MyData3").publish().refCount(2)
這會(huì)產(chǎn)生以下輸出,以確保在啟動(dòng)第二個(gè)訂閱者出現(xiàn)延遲時(shí)不會(huì)丟失消息。
Subscribing oneMyData1
Subscribing TwoMyData1
Subscribing oneMyData2
Subscribing TwoMyData2
Subscribing oneMyData3
Subscribing TwoMyData3
添加回答
舉報(bào)