当前位置: 首页 > 知识库问答 >
问题:

在Mono中转换Mono添加值

秦安宁
2023-03-14

我的程序服务提供了一些返回Mono的删除方法

调用后。删除(“x”)我想将clientId传播到下游以执行其他操作:

userService.get(id).map{ user -> 
        userService.delete(user.id) //This returns Mono<Void>
    .map { 
        user.id //Never called!!!
    }
    .map { userId -> 
        //other calls using the propagated userId
    }
}

问题是因为删除返回一个Mono


共有2个答案

干永丰
2023-03-14

我设法使用hasNext将其转换为布尔值:

    @Test
    fun `should`() {
        val mono: Mono<String> = "1".toMono()
                .flatMap { id ->
                    val map = Mono.empty<Void>()
                            .hasElement()
                            .map {
                                id + "a"
                            }.map {
                                (it + "1")
                            }
                    map
                }


        mono.doOnNext {
            println(mono)
        }.subscribe()
    }
拓拔曦
2023-03-14

您可以使用返回操作符

userService.get(id)
        .flatMap { user -> userService.delete(user.id).thenReturn(user.id) }
        .flatMap { id -> //other calls using the propagated userId }
 类似资料:
  • 更新: 一点我想要实现的内容。我有两个服务--一个通过Http返回me,另一个通过Redis返回。对于这两种情况,我有完全相同的功能-10-15个操作符链,我想要实现的是避免重复代码。 例如:

  • 我想使用反应性编程将我的excel文件存储到我的数据库中。在非反应式中,这很容易做到,但我不能在反应式中做类似的事情,我应该写什么来存储它到我的mongo数据库中?

  • 假设我有以下流程 只是为了理解 因此,我有 但我需要 继续皱眉 这个问题有什么好的解决办法吗?

  • Mono 是一个由 Novell 公司主持的项目。该项目的目标是创建一系列符合ECMA 标准(Ecma-334 和Ecma-335)的.NET 工具,包括C# 编译器和共通语言执行平台。与微软的.NET Framework 不同,Mono 项目不仅可以运行于Windows 系统上,还可以运行于Linux,FreeBSD,Unix,Mac OS X 和Solaris。 Mono 的开发工具 Mono

  • 我有一个问题的信号运行在MVC3的单声道。 我创建了以下集线器: 主要问题如下: 用户通过Forms auth登录,并且在context.user.identity.name中正确找到他们的名称。当客户端连接时,调用OnConnected并将连接添加到与用户名同名的单个用户组中。当我用组名作为用户名从客户端调用Echo函数时,如果我在IIS中托管,我会得到正确的响应(响应被发送到客户端),但在Mo

  • 我有一节这样的课 并从外部API向webclient获取数据 我想把数据转换成下面这样。 这是我的尝试 我的方法似乎是同步的。