您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

如何实现CompletableFuture.allOf(),一旦任何期货失效,它就会异常完成?

如何实现CompletableFuture.allOf(),一旦任何期货失效,它就会异常完成?

这个问题实际上与使用Java 8CompletableFuture替换Futures.successfulAsList十分相似。

尽管问题并不完全相同,但相同的答案(来自我自己)应该可以满足您的需求。

您可以结合使用来实现此功能allOf()并使用将每个输入的future与链接起来exceptionally(),这样会使allOf()立即返回的future 失败:

CompletableFuture<String> a = …, b = …, c = …;
CompletableFuture<Void> allWithFailFast = CompletableFuture.allOf(a, b, c);
Stream.of(a, b, c)
    .forEach(f -> f.exceptionally(e -> {
        allWithFailFast.completeExceptionally(e);
        return null;
    }));
其他 2022/1/1 18:18:23 有891人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶