#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.