FluxProcessor: получить последнее значение при подписке, как в теме rx - PullRequest
0 голосов
/ 11 октября 2019

В настоящее время FluxProcessor подписка извлекает только те значения, которые выдаются после подписки. Но я хочу получить последнее значение в Flux на момент подписки, например, как RX's Subject do.

У меня есть эта настройка:

FluxProcessor<Integer, Integer> processor = DirectProcessor.<Integer>create().serialize();
FluxSink<Integer> sink = processor.sink();

sink.next(1);

stateProcessor.subscribe(System.out:println);

sink.next(2);

Вывод:

1

Желаемый выход:

1
2

1 Ответ

1 голос
/ 11 октября 2019

Исправлено с помощью ReplayProcessor. Он может хранить N последних отправленных значений для дальнейших подписок. Для того же примера:

FluxProcessor<Integer, Integer> processor = ReplayProcessor.<Integer>create(1).serialize(); //1 is the history size
FluxSink<Integer> sink = processor.sink();

sink.next(1);

stateProcessor.subscribe(System.out:println);

sink.next(2);

Отпечатки:

1
2
...