2016-01-21 12 views
-2

無法得到真正的bufferSize參數意味着什麼,它的作用是什麼。RxJS:shareReplay中的bufferSize是什麼?

之間有什麼區別:

var published = source 
    .shareReplay(); 

var published = source 
    .shareReplay(0) 

var published = source 
    .shareReplay(1); 

var published = source 
    .shareReplay(10); 

+2

你讀過的文檔? https://github.com/Reactive-Extensions/RxJS/blob/master/doc/api/core/operators/sharereplay.md和http://reactivex.io/documentation/operators/replay.html。你不明白的是什麼?儘管如此,這並不難。試試你寫的代碼,並詢問你發現什麼奇怪的具體問題。因爲在不重複文檔的情況下很難回答這個問題。 – user3743222

+0

我試圖嘗試bu沒有看到差異。是的,我不明白什麼是「重播緩衝區的最大元素數」。這是什麼緩衝區? – WHITECOLOR

+1

發佈您的實驗,對它進行評論會更容易。從reactivexio文檔:'bufferSize' - 要緩衝並重放到後續觀察者的項目的最大數量。基本上,'replay(X)'將最後的X元素保存在緩衝區中,當新的訂閱者進入時,它會立即按照它們生成的相同順序(因此是重放語義)立即給出這些值。 – user3743222

回答

1
source  --1--2--3--4--5--6--7 
subscriber -----------S--------- 

source.shareReplay(2)subscriber將得到[2, 3, 4, 5,...]

+0

謝謝你注意到對你有什麼幫助。如果您還要在評論中複製說明信息,以幫助您瞭解這一理解,並向提供信息的人員歸屬,那麼這將有助於其他人解決同一問題。評論往往是不穩定的,並不像問答中的信息那樣「顯而易見」:-) –

+0

您能解釋爲什麼訂戶得到[2,3,4,5,...] –

+0

因爲它在訂閱共享流發射4,因爲有shareReplay(2),流會重播它以前的值2和3 – WHITECOLOR