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>
正如评论中所述,你不能。反应模式是保持流动。
所以,
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)