Рубрики
Без рубрики

Завершите поток завершаемых событий

Иногда я оказываюсь в ситуации, когда мне приходится выполнять некоторые асинхронные задачи и выполнять… Помеченный как java, stream.

Иногда я оказываюсь в ситуации, когда мне приходится выполнять некоторые асинхронные задачи и выполнять другую асинхронную задачу, когда все эти задачи будут выполнены. Как всегда в таких ситуациях, я искал stackoverflow для получения инструкции, и самый рейтинговый ответ предлагает следующее решение:

Это решение полностью работает, и оно хорошее. Однако, если вы часто имеете дело с Streams , более функциональный подход был бы аккуратным. Итак, я начал кодировать Сборщик это делает эту операцию для меня за один раз. Я не буду вдаваться в подробности того, как работает Collector , но этот пост в блоге очень помог мне понять это.

Наконец я получил это решение, которое я загрузил в github :

И вот как вы могли бы его использовать:

Счастливого кодирования!

Обновление

Очевидно, вчера было поздно D: Решение, которое я опубликовал, было скрыто в другом ответе с меньшим количеством голосов. Он предлагает использовать Collectors.collect, А затем вместе с описанным выше методом последовательности. На мой взгляд, это чище, чем следовать моему подходу с написанием Collector самостоятельно (СУХОЙ принцип). Окончательное решение опубликовано ниже, и оно содержит другой метод Collector -factory, который можно использовать, если вас не интересуют результаты или Завершаемые варианты для сбора имеют тип Пустота .

Оригинал: “https://dev.to/jklingsporn/complete-a-stream-of-completablefutures-3c3”