filterWhen 和 hasElement 的否定
Negation of filterWhen and hasElement
我正在学习 Flux 和 Mono,但在尝试检查 redis 中是否不存在键时遇到了困难。我需要过滤我的助焊剂,如果键存在,我想删除该元素。我在文档中找不到执行此操作的方法,如果密钥存在,我所能过滤的就是保留。我需要相反的东西。
client.request(MWS_EU, Orders, ordersRequest, ListOrdersResponse.class)
.flatMapIterable(listOrdersResponse -> listOrdersResponse.getOrders())
.filterWhen(order -> isNewOrder(order.getOrderId()))
.flatMap(...)
并检查 redis:
private Mono<Boolean> isNewOrder(String orderId) {
return redisOrders.opsForValue().get(orderId).hasElement();
}
过滤我的 Flux 以仅在键不存在时保留元素的干净方法是什么?
我不想使用 block()
。
您可以将方法更改为以下内容:
private Mono<Boolean> isNewOrder(String orderId) {
return redisOrders.opsForValue().get(orderId).hasElement().map(b -> !b);
}
通过使用 map()
方法,您可以反转 hasElement()
返回的值。
我正在学习 Flux 和 Mono,但在尝试检查 redis 中是否不存在键时遇到了困难。我需要过滤我的助焊剂,如果键存在,我想删除该元素。我在文档中找不到执行此操作的方法,如果密钥存在,我所能过滤的就是保留。我需要相反的东西。
client.request(MWS_EU, Orders, ordersRequest, ListOrdersResponse.class)
.flatMapIterable(listOrdersResponse -> listOrdersResponse.getOrders())
.filterWhen(order -> isNewOrder(order.getOrderId()))
.flatMap(...)
并检查 redis:
private Mono<Boolean> isNewOrder(String orderId) {
return redisOrders.opsForValue().get(orderId).hasElement();
}
过滤我的 Flux 以仅在键不存在时保留元素的干净方法是什么?
我不想使用 block()
。
您可以将方法更改为以下内容:
private Mono<Boolean> isNewOrder(String orderId) {
return redisOrders.opsForValue().get(orderId).hasElement().map(b -> !b);
}
通过使用 map()
方法,您可以反转 hasElement()
返回的值。