Как вернуть CompletableFuture из thenApply другого CompletableFuture в Java? - PullRequest
1 голос
/ 19 февраля 2020

Я новичок в понятии CompletableFuture в Java, поэтому я не очень много знаю о нем и его функциях, кроме thenApply

У меня есть требование, когда у меня есть проверить некоторые условия в блоке thenApply CompletableFuture A . Если условие выполнено, вернуть ноль, иначе вернуть еще один CompletableFuture B , чтобы в следующем thenApply результат был B .

В основном я пытаюсь сделать что-то вроде следующего:

CompletableFuture<String> A = ......
CompletableFuture<Boolean> B = ......

A.thenApply((res) -> {
  if (res.equals("hey")) {
   return null;
  } else {
   return B;
  }
})
.thenApply((bResult) -> { // At this point, I want it to act as if I was calling B.thenApply

   //some function;
})

Возможно ли это? Могу ли я вернуть CompletableFuture из другого CompletableFuture, чтобы следующие thenApply в цепочке фактически были thenApply из возвращенных CompletableFuture?

Кроме того, если я хочу отменить далее thenApply s при некотором условии. Как мне это сделать?

...