我需要实现返回Mono <Array <ProcessedObject >>的函数。作为参数,它接受对象列表并使用返回Mono <ProcessedObject>的函数处理它们。函数需要保持原始顺序,这意味着必须从参数列表的第一个元素创建返回列表中的第一个元素。到目前为止,我有以下解决方案,但它没有保持所需的顺序。 Flux甚至可以实现吗?
private fun createItems(objects: List<Someobjects>): Mono<Array<ProcessedObject>> {
return Flux.fromIterable(objects)
.flatMap {
processObject(it)
}.collectList().map { it.toTypedArray() }
}
编辑:澄清一点processObject返回Mono <ProcessedObject>
您可以尝试使用concatMap
而不是flatMap
。
private fun createItems(objects: List<Someobjects>): Mono<Array<ProcessedObject> {
return Flux.fromIterable(objects)
.concatMap {
processObject(it)
}.collectList().map { it.toTypedArray() }
}
flatMap和concatMap之间的区别在于后者保留了原始顺序。