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

如何使用每个 Flux 元素获得的 Mono 值来过滤通量?

孟永望
2023-03-14

假设我有一个通量

我有一个返回用户所属部门的服务:

departmentService.getByUserId(userId: Int) : Mono<Department>

我想筛选不在部门中的用户(部门服务.getByUserId(用户 Id:Int)返回空的单声道)或部门名称不是 HR 的部门中的用户。如何做到这一点?

users.flatMap { user ->
    departMentService.getByUserId(user.id)
    ...
}

共有1个答案

毋炳
2023-03-14

我的解决方案包括使用Pair在过滤器中传播我需要的信息的聚合:

users.flatMap { user ->
    departMentService.getByUserId(user.id)
       .map { Pair(user, it) }
}.filter { it.second == null || it.second.departmentName != "HR" }
 类似资料:
  • 有可能做类似下面代码的事情吗?我有一个服务进行API调用,另一个返回值流。我需要用API调用返回的值修改每个值。 我尝试过用。repeat()处理单声道,它可以工作,但是每次有新的流量值时它都会调用方法,而且是API调用,所以不好。 有可能吗?

  • 因此,我正在研究以下json: 我想检索联系人的类型为,并且只检索第一个返回的联系人。 将jsonpath与此路径一起使用时,“$…contacts[?(@.contactType=='S')].name”始终返回字符串数组,因为筛选操作始终将结果作为数组返回。 所以我尝试了“$联系人[?(@.contactType='S')].name[0]”和“$联系人[?(@.contactType='S'

  • 我有一个流量和单声道如下: 但是传递和处理相同的会导致错误。我怎样才能做到以上?谢了!

  • 我如何在事先不知道钥匙和价值的情况下获得每个物品的钥匙和价值?

  • 我是WebFlux/Reactor的新手,很难考虑如何编写这段代码。基本上,我有一个流量,它有一个嵌套的List foo和一个mono bar,我只想在foo中返回bar中包含的项。 上面代码块的问题是上的,我不想阻止。不确定如何将其更改为无阻塞,但仍然检查bar是否包含烫发项。

  • 问题内容: 我有一个只具有href值作为属性的锚标记的href值。现在,我想在页面中找到与我的href值具有相同值的元素,然后单击它。我找不到使用标准selenium方法执行此操作的任何方法。如何执行此操作?基本上,这些是我找到的功能,但似乎无法使用其中任何一个: 问题答案: 您可以使用find_element_by_xpath功能。