首页 > 解决方案 > 在不执行 map 或 flatMap 的情况下退出循环

问题描述

在迭代 Flux 代码时,我遇到了退出到方法末尾的问题。

我已经尝试了所有的可能性,但没有运气

    Flux ItemInventoryModelFlux = InventoryService .findBIdAndListOfItems(storeId, itemList);
    Mono<Object> obj = storeItemInventoryModelFlux.collectList().flatMap(storeItemInventoryModels -> {
      response.getAdjustedDemand().stream().forEach(adjustedDemand -> {
        if (bpnList.contains(adjustedDemand.getBpn())) {
          if (true) {
            storeItemInventoryModels.stream().forEach(storeItemInventoryModel -> {
              isRegularItem(storeItemModelFlux,bpnList.get(0));
            });
          }
        }
      });

这应该运行到循环内的另一个方法,但退出到最后。

标签: javaproject-reactor

解决方案


使用Flux<T> takeWhile(Predicate<? super T> continuePredicate)函数指定“退出”条件。当您提供的谓词返回时,false您将停止使用原始流中的元素。 链接到 Flux javadoc


推荐阅读