Как разделить события, применить разные карты к каждой группе, а затем объединить их обратно ⇐ JAVA
-
Гость
Как разделить события, применить разные карты к каждой группе, а затем объединить их обратно
У меня есть список предстоящих товаров с двумя типами идентификаторов. Мне нужно сгруппировать их по 2, а затем для одной группы вызвать другой метод, который дополнит идентификатор и предоставит другой идентификатор, а для другой группы просто вернет то же самое. Мне нужно объединить обе группы в один поток после вышеуказанного действия. Но когда я применяю map, он возвращает Flux и теряет информацию о типе.
Flux.fromIterable(события) .map(событие -> сериализатор.десериализация(событие, Payload.class)) .filter(Необязательно::isPresent) .map(Необязательно::get) //Flux .groupBy(event -> event.getIdType()) //Есть только 2 типа .concatMap(группа -> group.map(событие -> { if(group.key().equals(IdType.SEC_ID.getValue()))) { //Обогащаем и используем return richer.enrich(List.of(event)); //возвращаем Flux } еще { //Просто используйте их как таковые возвратное событие; } })) //Возвращает Flux, почему не возвращает Flux Как их теперь объединить?
У меня есть список предстоящих товаров с двумя типами идентификаторов. Мне нужно сгруппировать их по 2, а затем для одной группы вызвать другой метод, который дополнит идентификатор и предоставит другой идентификатор, а для другой группы просто вернет то же самое. Мне нужно объединить обе группы в один поток после вышеуказанного действия. Но когда я применяю map, он возвращает Flux и теряет информацию о типе.
Flux.fromIterable(события) .map(событие -> сериализатор.десериализация(событие, Payload.class)) .filter(Необязательно::isPresent) .map(Необязательно::get) //Flux .groupBy(event -> event.getIdType()) //Есть только 2 типа .concatMap(группа -> group.map(событие -> { if(group.key().equals(IdType.SEC_ID.getValue()))) { //Обогащаем и используем return richer.enrich(List.of(event)); //возвращаем Flux } еще { //Просто используйте их как таковые возвратное событие; } })) //Возвращает Flux, почему не возвращает Flux Как их теперь объединить?
Мобильная версия