我想在 Flux 中动态添加对象

I want to add objects in Flux dynamically

我对 Spring WebFlux 中的反应式编程还很陌生。请原谅我的无知。

下面的代码没有将对象 EyeCare 添加到 Flux eyeCares。 我阅读了 Flux.createFlux.generate here that seem to be used to create Flux also I read this

private Flux<EyeCare> populateFakeData(Locale locale, int count){
    Flux<EyeCare>  eyeCares = Flux.empty();
    for(int i=0; i< count; i++){               
        eyeCares.concatWithValues(fakeDataService.generateEyeCare(locale));
    }
    return eyeCares;
}   
  1. Flux.createFlux.generate 是我需要采取的解决方法吗?
  2. 如果是,那么 myEventProcessor 从哪里进入 code snipped
  3. 如何引入 Flux.createFlux.generate 而不是 eyeCares.concatWithValues

您应该能够很容易地使用 Flux::generate

private Flux<EyeCare> populateFakeData(Locale locale, int count){
    return Flux.generate(()->new AtomicInteger(count), (state, sink) -> {
        if (state.getAndDecrement() > 0 ) {
            sink.next(generateEyeCare(locale));
        } else {
            sink.complete();
        }
        return state;
    });
}

为简单起见,您可以使用 rangemap:

private Flux<EyeCare> populateFakeData(Locale locale, int count){
    return Flux.range(1, count)
            .map(i -> fakeDataService.generateEyeCare(locale));
}