关闭。这个问题需要细节或清晰。它目前不接受答案。
**想改进这个问题吗?**通过编辑这个帖子来添加细节并澄清问题。
昨天关门了。
改进这个问题
我有一个方法,它根据一个条件从db返回一个实体的计数,假设该方法返回一个 Mono<Long>
它被称为 repository.count()
如果计数是1,我想调用方法 A
,如果计数大于1,我想调用方法 B
. 我想避免使用 repository.count().flatmap(count -> if (count == 1L) return A(); if (count > 1L) return B(); (...) }
相反,我想用 .filter()
或者 filterWhen()
但我不知道该怎么用。。。你能给我指出代码的正确方向吗?
1条答案
按热度按时间hzbexzde1#
filter()
它的变体只能删除项目(或者Mono
,单个项)。他们不可能将它们Map到另一个值——即使你能以某种方式实现这一点,你的React流也很难读取,因为你基本上是误用了操作符。map()
或者flatMap()
(取决于您是想要同步还是异步Map)正是正确的方法。授予if
语句看起来不太整齐,但如果要避免这种情况,请使用三元:…而不是试图滥用操作员来避免。类似于上面的代码在React流中很常见,没有必要费尽心思去避免它。