Signal
документы говорят:
Наблюдатель Сигнала увидит ту же последовательность событий, что и все остальные наблюдатели. Другими словами, события будут отправлены всем наблюдателям одновременно.
Это в отличие от производителей, которые создают новый сигнал при каждом запуске, что означает, что это возможно для каждого наблюдателя. чтобы увидеть различные события.
Сценарий буферизации требует, чтобы каждый наблюдатель получал список текущих значений в буфере после подписки, а другие наблюдатели не должны получать эти значения каждый раз, когда добавляется новый наблюдатель. Следовательно, каждому наблюдателю нужен свой собственный сигнал, и это означает, что механизм буферизации должен быть реализован как продюсер , который может создать новый сигнал для каждого подписчика.
Есть хорошее обсуждениес 2016 года , когда был добавлен replayLazily
, который, как мы надеемся, проясняет мышление оператора и почему оно абсолютно не может быть частью Signal
.