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
できる可能性のあるユーザー ブロック ( ) を続行したくありません。block3
foo
おまけの質問: CompletableFuture
Java の世界よりも優れたものはありますか?