Это должно быть что-то вроде этого. Пожалуйста, обратите внимание, что я не проверял это на моей IDE. Чтобы что-то изменить, пожалуйста, прокомментируйте и разберитесь в этом вместе.
private Mono<OrderInfo> setPrices(final OrderInfo orderInfo) {
getArticleDocuments(orderInfo)
.map(articleDocuments -> {
articleDocuments.forEach(article -> // UPDATE AS YOU NEED);
return orderInfo;
});
private Mono<List<ArticleDocument>> getArticleDocuments(final OrderInfo orderInfo) {
return this.articleRepository.findByArticleName(orderInfo.getArticleName()).collectList();
}
Помните, что вы должны все связать. вот почему вы должны вернуть Mono<OrderInfo>
вместо OrderInfo
из setPrices
метода. Если вы обнаружите, что мой предложенный код сложно адаптировать к вашей текущей структуре кодирования, вы можете показать мне полный код. Давайте выясним, можем ли мы построить хорошую цепочку или нет.
Кстати, вы использовали getArticleDocuments(orderInfo).block();
. Видеть? Вы использовали .block()
? Не делай этого в цепочке. никогда не блокируйте ничего в запросе к процессу цепочки ответов. вы вернете моно или поток из контроллера, и все будет обработано webflux