Как создать поток Rx (RxJS), который можно переключать между одноэлементным и пакетным режимом?

У меня есть поток Rx, который является исходящим потоком изменений от определенного компонента.

Иногда я хочу иметь возможность ввестипакетный режим в потоке, чтобы элементы передавалисьonNext накапливаются и передаются только при выходе из пакетного режима.

Обычно я передаю отдельные элементы через поток:

stream.onNext(1); 
stream.onNext(2);

Между элементами, передаваемыми вonNext и предметы, полученные вподписываться, так что предыдущий фрагмент приводит к двум вызовамподписываться со значениями 1 и 2.

пакетный режим Я ищу может работать что-то вроде этого:

stream.enterBatchMode();
stream.onNext(1);
stream.onNext(2);
stream.exitBatchMode();

В этом случае я хочуподписываться вызываться только один раз с одним объединенным массивом [1, 2].

Просто чтобы повторить, мне иногда нужен только пакетный режим, а иногда я пропускаю не связанные элементы.

Как я могу добиться этого поведения с Rx?

ПРИМЕЧАНИЕ. Ранее я передавал массивы черезonNext хотя это в основном так, что тип остается тем же, когда в индивидуальном режиме и в пакетном режиме.

Например:

stream.onNext([1, 2, 3]); 
stream.onNext([4, 5, 6]);

Subscribe получает [1, 2, 3], затем [4, 5, 6], но когда в пакетном режиме подписка получает объединенные результаты [1, 2, 3, 4, 5, 6].

Поэтому, когда вы смотрите на это так, это больше похоже наunconcatenated а такжесцепленный режимы (в отличие отиндивидуальный а такжепакетный режим). Но я думаю, что проблема очень похожа.

Ответы на вопрос(3)

Ваш ответ на вопрос