Передача результата CompletableFuture другому - PullRequest
0 голосов
/ 29 января 2019

Я относительно неопытен с Java CompletableFuture и, возможно, мне нужна помощь с ним.Вот то, что я пытаюсь сделать.

/* I want to use the result of the future in a second one.
 * So basically, what I want to do is to return the second future,
 * but I don't want to block and wait for the first future to complete.
 * /
CompletableFuture<TypeA> -> CompletableFuture<TypeB> 

Так что мне интересно, есть ли способ «связать» первое будущее со вторым, чтобы было возвращено одно будущее (TypeB).

1 Ответ

0 голосов
/ 29 января 2019

Метод thenCompose делает именно это.

Вот пример на https://www.baeldung.com/java-completablefuture:

CompletableFuture<String> completableFuture 
  = CompletableFuture.supplyAsync(() -> "Hello")
    .thenCompose(s -> CompletableFuture.supplyAsync(() -> s + " World"));

assertEquals("Hello World", completableFuture.get());

Также естьпосмотрите на разницу между thenCompose и thenComposeAsync .

...