когда я могу использовать Mono.flatMapIterable против Mono.flapMapMany? - PullRequest
0 голосов
/ 03 мая 2019

Новичок в реакторе, пытающийся понять Mono.flatMapMany и Mono.flatMapIterable как часто имеющие дело с моно объекта, содержащего коллекцию.

Какая разница между:

        Mono.just(List.of("one", "two", "three")).log().flatMapMany(Flux::fromIterable).subscribe(System.out::println);
        Mono.just(List.of("one", "two", "three")).log().flatMapIterable(l -> l).subscribe(System.out::println);

Когда я использую каждый метод?

спасибо

1 Ответ

1 голос
/ 03 мая 2019

Mono#flatMapMany - универсальный оператор «один ко многим».
Mono#flatMapIterable - это специальный оператор для «сглаживания» элемента, представленного как Iterable<T>, в реактивный поток T.

Используйте Mono#flatMapIterable, где это возможно (mapper может вернуть Iterable), поскольку он оптимизирован, используйте Mono#flatMapMany, когда ваш mapper возвращает Publisher элементов.

...