Kotlin SpringWebFlux-如何以反应友好的方式转换下面的代码?

Kotlin SpringWebFlux-如何以反应友好的方式转换下面的代码?,kotlin,reactive-programming,spring-webflux,Kotlin,Reactive Programming,Spring Webflux,我想做的是将我的服务功能更改为一种反应友好的方式。由于我对反应式编程有点陌生,我不知道如何处理Mono中的业务逻辑。您可以使用.map处理业务逻辑并重新映射到不同的输出。但是你的projectRepo甚至是被动的吗?如果您使用的是非反应式http/io/etc调用,那么进行反应式调用没有任何好处,您只会给自己带来维护和调试应用程序的困难code@kdev目前我正在将项目回购转换为反应式回购。你能给我一个例子,如何使用映射来处理业务逻辑和重新映射到不同的输出吗。正如kdev所指出的,你应该首先确保

我想做的是将我的服务功能更改为一种反应友好的方式。由于我对反应式编程有点陌生,我不知道如何处理Mono中的业务逻辑。

您可以使用
.map
处理业务逻辑并重新映射到不同的输出。但是你的
projectRepo
甚至是被动的吗?如果您使用的是非反应式http/io/etc调用,那么进行反应式调用没有任何好处,您只会给自己带来维护和调试应用程序的困难code@kdev目前我正在将项目回购转换为反应式回购。你能给我一个例子,如何使用映射来处理业务逻辑和重新映射到不同的输出吗。正如kdev所指出的,你应该首先确保你的回购是反应性的(它不应该阻止并返回流量),否则“转换为反应性”可能并不是你所认为的意思。
fun getProjectOverview(fiscalYear: Int): ProjectOverview? {
        val projectList: List<Project> = projectRepo.findAllProjects(fiscalYear)
        return if (projectList.isNotEmpty()) {
            val totalProjects = projectList.size
            val completedProjects = projectList.count { it.status == "COMPLETED" } //Add enums
            val meanScheduledVariance = (projectList.sumBy { it.schedule_variance } / totalProjects)
            val meanCostVariance = (projectList.sumBy { it.cost_variance } / totalProjects)

            ProjectOverview(totalProjects, completedProjects, meanScheduledVariance, meanCostVariance)
        } else {
            null
        }
    }
Mono.justOrEmpty(projectService.getProjectOverview(fiscalYear)).toFuture()