0

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 の世界よりも優れたものはありますか?

4

1 に答える 1