Java flatMap后要求返回的反应弹簧
我得到了一个IDE错误“Missing return statement”,尽管我真的想在平面图后面加一个“then” repository.findById返回一个通量 setParent是一个bean更新 repository.save来自reactivecrudepository:Mono save(S实体) 为什么要我回来?为什么我不能在这之后使用then()呢Java flatMap后要求返回的反应弹簧,java,spring,spring-webflux,reactive,Java,Spring,Spring Webflux,Reactive,我得到了一个IDE错误“Missing return statement”,尽管我真的想在平面图后面加一个“then” repository.findById返回一个通量 setParent是一个bean更新 repository.save来自reactivecrudepository:Mono save(S实体) 为什么要我回来?为什么我不能在这之后使用then()呢 private Mono<Void> runThreeThings(Batch batch) { return
private Mono<Void> runThreeThings(Batch batch) {
return repository.findById(batch.getId())
.flapMap(doc -> {
doc.setParent(SOME_PARENT_ID);
repository.save(doc)
}) // <-- this is where I'm getting a "Missing return statement" error. Why?
}
private Mono runthings(批处理){
返回repository.findById(batch.getId())
.flapMap(文件->{
doc.setParent(某些父项ID);
repository.save(doc)
})//因为flatmap的参数是一个需要返回的函数(object extends Mono)
在您的情况下,您需要返回一个mono,解决方案将是
private Mono<Void> runThreeThings(Batch batch) {
return repository.findById(batch.getId())
.flapMap(doc -> {
doc.setParent(SOME_PARENT_ID);
return repository.save(doc);
});
private Mono runthings(批处理){
返回repository.findById(batch.getId())
.flapMap(文件->{
doc.setParent(某些父项ID);
返回存储库,保存(单据);
});
我对这个save()的结果不感兴趣。我真的需要save()然后启动另一个通量-我想我可以用“.then()”来完成。在这之后。我认为map()在这里是无用的-可能类似于异步foreach()的东西?如果不返回save,则将永远不会调用save,因为它将永远不会被订阅。即使返回另一个mono和than use,您也可以这样做。然后()但将永远不会调用save