无阻塞地通量到 List<Objects>

use*_*872 6 java reactive-programming project-reactor graphql-java

寻找将 Flux 转换为List<Object>. 如果我使用 block() 会出现错误。因此,需要在不阻塞呼叫的情况下进行通话。

Flux.from(Collection.find())
Run Code Online (Sandbox Code Playgroud)

使用反应式编程,但 graphql 期望List<objects>返回 Flux 并出错。

使用 Block() 编写代码

public List<Test> findAll() {
        return Flux.from(testCollection.find()).collectList().block();

}
Run Code Online (Sandbox Code Playgroud)

错误 :-

block()/blockFirst()/blockLast() are blocking, which is not supported in thread reactor-http-kqueue-7
Run Code Online (Sandbox Code Playgroud)

在这里,我需要返回,因为由于某种原因List<Test>我无法发送。Flux<Test>

K.N*_*las 2

正如评论中所述,你不能。反应模式是保持流动。

所以,

Mono<GraphqlResponse> = Flux.just("A", "B" "C")
  .collectList()
  .map(this::someMethod);

GraphqlResponse someMethod(List<String> abcs) {
    return graphQl.doSomething(abcs);
}
Run Code Online (Sandbox Code Playgroud)