(12)自定义数据流(实战Docker事件推送的REST API)——响应式Spring的道法术器
本系列文章索引《响应式Spring的道法术器》前情提要 Reactor 3快速上手 | Spring WebFlux快速上手 | 响应式流规范
本文 测试源码 | 实战源码
2.2 自定义数据流
这一小节介绍如何通过定义相应的事件(onNext、onError和onComplete) 创建一个 Flux 或 Mono。Reactor提供了generate、create、push和handle等方法,所有这些方法都使用 sink(池)来生成数据流。
sink,顾名思义,就是池子,可以想象一下厨房水池的样子。如下图所示:
下面介绍到的方法都有一个sink提供给方法使用者,通常至少会暴露三个方法给我们,next、error和complete。next和error相当于两个下水口,我们不断将自定义的数据放到next口,Reactor就会帮我们串成一个Publisher数据流,直到有一个错误数据放到error口,或按了一下complete按钮,数据流就会终止了。
2.2.1 generate
generate是一种同步地,逐个地发出数据的方法。因为它提供的sink是一个SynchronousSink, 而且其next()方法在每次回调的时候最多只能被调用一次。
generate方法有三种签名:
public staticFlux generate(Consumer generator)
public staticFlux generate(Callable stateSupplier, BiFunction generator)
public staticFlux generate(Callable stateSupplier, BiFunction generator, Consumer
页:
[1]