Как упорядочить задачу для выполнения после завершения всех синглов в коллекции
Я использую транзакции Helidon DBClient и оказался в ситуации, когда я получаю список синглов,List<Single<T>>
и хотите выполнить следующее задание только после завершения всех синглов.
Я ищу что-то эквивалентное CompletableFuture.allOf(), но с Single .
Я мог бы сопоставить каждый из одиночных toCompletableFuture(), а затем выполнить CompletableFuture.allOf() сверху, но есть ли лучший способ? Может ли кто-нибудь указать мне в правильном направлении с этим?
--
Почему я получил List<Single>?
У меня есть коллекция POJO, которую я превращаю в именованную вставку .execute() в рамках открытой транзакции. Поскольку я создаю исходную коллекцию .stream() и выполняю вставки с помощью оператора .map(), я получаю список, когда завершаю поток для сбора списка. Ни одна из вставок могла фактически не выполняться. На данный момент я хочу дождаться завершения всех одиночных игр, прежде чем перейти к следующему этапу.
Это то, что я, естественно, сделал бы с CompletableFuture.allOf(), но я не хочу менять диалект API только для этого и придерживаться Single/Multi.