我正在将用 RxJava 1.x 编写的小项目转换为 Reactor 3.x。一切都很好,只是我不知道如何flatMap(Observable::from)
用合适的对应物替换。我有Mono<List<String>>
并且我需要将其转换为Flux<String>
.
问问题
47172 次
3 回答
79
在 Reactor 3 中,from
运算符已被专门化为几个变体,具体取决于原始源(数组、可迭代等)。
在你的情况下使用yourMono.flatMapMany(Flux::fromIterable)
。
于 2017-02-02T18:22:28.460 回答
8
我认为可能Flux::mergeSequential
静态工厂更适合这里:
Iterable<Mono<String>> monos = ...
Flux<String> f = Flux.mergeSequential(monos);
这种合并(顺序)将保持给定源可迭代内部的顺序,并且还将从所有参与的源急切地订阅/请求(因此在计算单声道结果时期望更多的并行化)。
于 2018-08-01T09:15:04.647 回答
4
谢谢西蒙,我实现了这样的事情:
List<Object> dbObjects = ListObjectsBD();
List<Dao> daos = mapperObjToDao(dbObjects);
Flux<Dao> daoFlux = Mono.just(daos).flatMapMany(Flux::fromIterable);
于 2018-07-31T22:05:24.993 回答