首页 > 解决方案 > Mono/Flux 是否有来自 Stream / Optional API 的 Peek / IfPresent 等运算符?

问题描述

正如标题所说,想知道在使用 Mono/Flux 时,是否有任何等效(或类似)的运算符可以从 Java Stream API 中窥视和 ifPresent。

标签: javajava-streamspring-webfluxproject-reactor

解决方案


Flux#hasElement

如果此 Flux 序列的任何元素等于提供的值,则发出单个布尔值 true。该实现使用短路逻辑,如果元素与值匹配,则以 true 完成。

Mono<Boolean> ifPresent = Flux.<Ob>just(...)
        .hasElement(value); // similar to ifPresent

Flux#doOnNext

当 Flux 发射一个项目时触发添加行为(副作用)。

Flux<Ob> flux = Flux.<Ob>just()
        .doOnNext(i -> {}); // similar to peek

推荐阅读