java - 具有内部通量的 Java Reactor 通量过滤器
问题描述
假设我有一个Flux<O>
,我想过滤掉其中的一些,但这需要另一个的结果Flux
,不知道该怎么做。
例如
private Mono<Boolean> somePredicate(int num) {
// logic
return Mono.just(true);
}
Flux<O> flux = Flux.just(1, 2, 3, 4, ...);
flux.filter(n -> somePredicate(n)); // I know it is not right here, but could not figure out
解决方案
你可以使用flatMap
.
Flux<Boolean> booleanFlux = Flux.just(1, 2, 3, 4)
.flatMap(integer -> {
/*
or if you have a instance you can use method reference like this.
flatMap(swService::somePredicate)
*/
return new MyClass().somePredicate(integer);
});
booleanFlux.subscribe(aBoolean -> {
System.out.println("aBoolean = " + aBoolean);
});
推荐阅读
- linux - 连接EC2实例的私钥
- c++ - 标头中的 const 和 constexpr 变量是否应该是 inline 以防止 ODR 违规?
- javascript - 带有 ngx-translate 库 angular 4/5 下拉菜单的 html 中的 ng 模型
- php - 在 PHP (AWS/ResulData) 中访问多维关联数组时出错
- javascript - GraphQL 查询返回错误 .filter 不是函数
- javascript - 一个盒子不适合不同的屏幕分辨率
- web-scraping - 网页抓取产品详细信息,而不是 UIPath 中的列表/表格
- c# - Bot Framework - 等待用户在瀑布对话框中点击英雄卡动作
- .net - 为什么我不能处理表单?
- reactjs - 获取“schemeCategory20”未从“d3”导出以将 D3.js V.5.7 转换为 React JS 组件