diff --git a/java/CompletableFuture.md b/java/CompletableFuture.md index c616b6f..4ec1dd4 100644 --- a/java/CompletableFuture.md +++ b/java/CompletableFuture.md @@ -17,6 +17,7 @@ | `thenCompose(Function> fn)` | 返回一个新的 `CompletableFuture`,执行链式的异步任务。 | `CompletableFuture future3 = future.thenCompose(result -> CompletableFuture.supplyAsync(() -> result * 2));` | | `exceptionally(Function fn)` | 当任务执行失败时,执行异常处理,并返回一个默认值。 | `future.exceptionally(ex -> { System.out.println("任务异常: " + ex.getMessage()); return -1; });` | | `handle(BiFunction fn)` | 无论任务成功还是失败,都处理结果或异常,并返回一个新的结果。 | `future.handle((result, ex) -> { if (ex != null) return -1; return result * 2; });` | +| ` CompletableFuture whenComplete(BiConsumer action)` | 不改变结果 适合监听日志 处理异常 | future.whenComplete((result, ex) -> { if (ex == null) { System.out.println("结果: " + result); } else { System.err.println("异常: " + ex.getMessage()); }}); | | `allOf(CompletableFuture... futures)` | 等待所有 `CompletableFuture` 完成,返回一个新的 `CompletableFuture`。 | `CompletableFuture allOfFuture = CompletableFuture.allOf(future1, future2);` | | `anyOf(CompletableFuture... futures)` | 等待任意一个 `CompletableFuture` 完成,返回一个新的 `CompletableFuture`。 | `CompletableFuture anyOfFuture = CompletableFuture.anyOf(future1, future2);` | | `cancel(boolean mayInterruptIfRunning)` | 取消任务。如果任务还未开始,取消会返回 `true`;如果任务已开始,`mayInterruptIfRunning` 为 `true` 时可以中断任务。 | `future.cancel(true);` |