问题描述
Mono<ObjectA> someBinaryFunction(String someString,enum someEnum)
并且我想在一些操作后使用来自 Spring 存储库的通量来订阅此函数:
repo.findAll()
.filter( item -> itemField < someValue)
.flatMapSequential( item ->
Flux.just(item.getValue1(),enum.ENUMVALUE)
).subscribe(baseClass::someBinaryFunction)
这是如何实现的,使用 Flux 订阅具有 N 个参数的函数的最佳实践是什么?我的第一个直觉是使用上面的序列平面映射,但失败了。
解决方法
如果最初的意图是将项目的 Flux 转换为像 (item,enumVal) 这样的对的通量,则解决方案可能如下:
repo.findAll()
.filter( item -> itemField < someValue)
.flatMapSequential( item ->
Flux.just(Tuples.of(item.getValue1(),enum.ENUMVALUE))
).subscribe(tuple->baseClass.someBinaryFunction(tuple.getT1(),tuple.getT2()))
Tuples.of(...) 方法创建类型对 Tuple2