Java 8 CompletableFuture. Часть 2 - продолжение

FacebooktwittertumblrFacebooktwittertumblr

Данная статья написана командой Vertex Academy. Это одна из статей из нашего Учебника по Java 8. Надеемся, что данная статья Вам будет полезна. Приятного прочтения!


В предыдущей статье мы рассмотрели азы асинхронной обработки данных в Java 8 с помощью CompletableFuture. В этой статье мы рассмотрим объединение CompletableFuture в цепочку и обработку исключений.

1. Введение

CompletableFuture - новый класс для асинхронной работы, который дает возможность комбинировать шаги обработки, соединяя их в цепочку. Класс содержит около 50 методов для выполнения, объединения а так же обработки исключений.

2. Объединение с thenCompose()

Объединять CompletableFuture можно несколькими способами, один из них (thenApply()) мы рассмотрели в предыдущей статье, а второй - с помощью thenCompose()

Метод thenApply() является аналогом Optional.map()только вот возвращает новое CompletionStage, которое выполняется с результатом этого этапа. В то время как thenCompose() является аналогом Optional.flatMap() и возвращает новое CompletionStage, которое выполняется на этом этапе в качестве аргумента для функции.

3. Объединение с thenCombine()

Если мы хотим по завершению двух задач выполнить третью, то это можно сделать с помощью thenCombine()

4. Обработка исключений

CompletableFuture также позволяет нам с легкостью обрабатывать исключения с помощью методов handle()

и exceptionally()

где вариант с handle() является более гибким, и функция выполнится в любом случае в независимости от того будет исключение или нет; в то время как exceptionally() выполнится только в случае исключения.

В следующей статье мы рассмотрим параллельное выполнение нескольких CompletableFuture.

В Java 8 есть еще множество полезных нововведений, которые можно найти тут

Надеемся - наша статья была Вам полезна. Есть возможность записаться на наши курсы по Java. Детальную информацию смотрите у нас на сайте.

 

FacebooktwittertumblrFacebooktwittertumblr

FacebooktwittertumblrFacebooktwittertumblr
Самоучители--узнать детальнее--