Невозможно отфильтровать Моно карты

#functional-programming #reactive-programming #spring-webflux #flux

#функциональное программирование #реактивное программирование #spring-webflux #поток

Вопрос:

 

    Mono> t = taxCodeByUpc.flatMap( avaTaxCodesMap-> {
                //fetching list inside and logged as well
                List missedUpc = avaTaxCodesMap
                    .keySet()
                    .stream()
                    .filter(avaTaxCodes ->avaTaxCodes.equals(TaxCoreRepository.DEFAULT_AVATAX_CODE))
                    .collect(Collectors.toList());
                if (!missedUpc.isEmpty()) {

                   // do something
                }
                return Mono.just(avaTaxCodesMap);
            });
 

в коде есть taxCodeByUpc, который является картой, которую я пытаюсь отфильтровать, но это выражение не работает, во время отладки я узнал, что отладчик даже не входит внутрь из самой первой строки. На выходе я хочу карту только с записью, которая удовлетворяет условию.

Комментарии:

1. что-нибудь подписывается на mono t ? Без подписки ничего никогда не произойдет.

2. Тег mono не предназначен для Java. Не злоупотребляйте этим.

3. @MichaelMcFadyen я новичок в Spring-Webflux, но я больше не использую t, особенно не подписываясь. Но мотив состоит в том, чтобы отфильтровать карту и журнал, если отфильтрованное значение не является пустым! Можете ли вы помочь в этом? как я могу использовать функциональность подписки

4. наиболее распространенный подход — разрешить spring boot подписаться на ваш Mono для вас. Вы могли бы сделать это, вернув экземпляр Mono либо из метода контроллера, либо из вашей HandlerFunction, в зависимости от того, какой подход вы выбрали для определения своих конечных точек REST.