Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java flatMap后要求返回的反应弹簧_Java_Spring_Spring Webflux_Reactive - Fatal编程技术网

Java flatMap后要求返回的反应弹簧

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

我得到了一个IDE错误“Missing return statement”,尽管我真的想在平面图后面加一个“then”

repository.findById返回一个通量

setParent是一个bean更新

repository.save来自reactivecrudepository:Mono save(S实体)

为什么要我回来?为什么我不能在这之后使用then()呢

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