请考虑以下通量
FluxSink<String> sink;
Flux<String> flux1 = Flux
.<String>create(emitter -> {
sink = emitter;
},...)
.cache()
.publish()
.autoConnect();
因此,要添加/订阅项目,我们可以进行sink.next(“4”);
flux1.subscribe(item -> log.info(“item: “+item);
通过过滤flux1
,例如,从元素“ 2”中未将其从流量中移除。
我知道Flux
发布者是一成不变的。
如果我们可以通过接收器添加它,如何从flux1
中删除一个项目?
答案 0 :(得分:1)
将Flux视为不变的消息流。它就像一条河,您可以向其中添加一些水,但是您无法将已经滴下的水回滚。但是,您可以将水过滤掉。
如果您需要从流中“删除”非法元素,可以对其进行过滤:
flux1.filter(e -> !e.equal("2"))
.subscribe(item -> log.info(“item: “+item);
流量不是我们习惯的数据结构,而是数据流,您不能在数据提供时修改它,但可以操纵它们到达端点的方式