簡體   English   中英

如何消耗flux里面的flux元素?

[英]How to consume elements of flux inside flux?

我的代碼:-

Flux<A> outsideFlux = groupedFlux.map(element -> {

        //some operations that convert element to A

        Flux<Double> insideFlux = someOtherCallThatReturnsThisFluxOfDouble;

        insideFlux.subscribe(val -> A.setVal(val));
      }
    )

上面的問題即使在執行 A.setVal(val) 之后,它仍然只保留 null(因為值只存在於 stream 中,然后消失)。如何在 A 中設置這個值?

很難知道您到底想要實現什么,但假設:

  • groupedFlux是一個Flux<Integer>
  • someOtherCallThatReturnsThisFluxOfDouble是一個Flux<Double>
  • outsideFlux是一個Flux<A>

看看下面的代碼片段,它應該可以幫助你:

public static void main(String[] args) {
    Flux<Integer> groupedFlux = Flux.just(1, 2, 3, 4);
    Flux<A> listOfA = groupedFlux
            .map(DemoApplication::randomListOfDoubles)
            .flatMap(fluxWithDoubles -> fluxWithDoubles.collectList().flatMap(x -> Mono.just(new A(x))));
}

static class A {
    private List<Double> doubles;
    public A(List<Double> doubles) {
        this.doubles = doubles;
    }
}

private static Flux<Double> randomListOfDoubles(int number) {
    return Flux.just(100.00 + number, 200.00 + number, 300.00 + number);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM