如何从将状态转换为值和新状态的函数创建Flux?

时间:2017-03-18 09:51:52

标签: project-reactor

我有一个功能需要State并生成新的StateValue

如何从中创建Flux?

或者说代码:

Function<State, Pair<State, Value> f = ...;

Flux<Value> values = xxx(f); 

什么是xxx

1 个答案:

答案 0 :(得分:0)

我了解到,您可以使用Flux.generate轻松完成我想要的任务:

Flux.generate(
    () -> initialState, 
    (state, sink) -> {
        Pair<State, Value> p = f.apply(state); // get the new state and the value
        sink.next(p.right); // this is basically calling the subscriber with the value
        return p.left; // this returns the new state
    }
);