FluxProcessor:像 rx 的主题一样检索订阅时最后发出的值



目前,FluxProcessor订阅仅检索订阅后发出的那些值。但是我想在订阅时检索 Flux 中的最后一个值,例如,就像 RX 的Subject一样。

我有这个设置:

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

使用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

最新更新