diff --git a/src/main/java/org/warp/commonutils/concurrency/future/CompletableFutureUtils.java b/src/main/java/org/warp/commonutils/concurrency/future/CompletableFutureUtils.java index 8d69921..9b6758e 100644 --- a/src/main/java/org/warp/commonutils/concurrency/future/CompletableFutureUtils.java +++ b/src/main/java/org/warp/commonutils/concurrency/future/CompletableFutureUtils.java @@ -12,6 +12,7 @@ import java.util.TreeSet; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutorService; import java.util.function.Consumer; +import java.util.function.Function; import java.util.function.Supplier; import java.util.stream.Collectors; @@ -175,4 +176,12 @@ public class CompletableFutureUtils { } return result; } + + public static CompletableFuture applySequenceAsync(T initialValue, Collection>> collection, ExecutorService executorService) { + var result = CompletableFuture.completedFuture(initialValue); + for (Function> item : collection) { + result = result.thenComposeAsync(item, executorService); + } + return result; + } }