CompletableFuture次のように実行中のブロックをチェーンできます。
CompletableFuture
.supplyAsync(block1)
.thenApply(block2)
.thenApply(block3)...
私の関数は 2 つのブロックでそのようなものを返すCompletableFutureので、ユーザーは必要に応じてさらに連鎖を続けることができます。
public CompletableFuture foo() {
return CompletableFuture
.supplyAsync(block1).
.thenApply(block2);
}
ユーザーはこれを次のように使用できます。
foo().thenApply(block3).join();
メソッドにハンドラーを追加したい.exceptionaly()(ユーザーには見えないようにするため) が、ブロックのいずれかが失敗した場合に、チェーンと可能なユーザー チェーンを切断できるハンドラーです。言い換えると、block1またはが失敗した場合、の戻り値にチェーンblock2できる可能性のあるユーザー ブロック ( ) を続行したくありません。block3foo
おまけの質問: CompletableFutureJava の世界よりも優れたものはありますか?