CompletableFuture<String> future1 = CompletableFuture.supplyAsync(() -> {
return "hello";
});
CompletableFuture<String> future1 = CompletableFuture.supplyAsync(() -> {
return "world";
});
我需要结合 2 个期货来获得
hello world
所以我正在做这样的事情
CompletableFuture<String> result = future1.thenCombine(future2, (s1, s2) -> s1 + s2);
result.join(); // this prints hello world
现在我的挑战是,如果上述期货中的任何一个异常失败,它应该至少返回部分响应。
如果
future1
失败那么输出应该是hello
如果
future2
失败那么输出应该是world
如果两者都成功那么输出应该是
hello world
我尝试使用
CompletableFuture.anyOf()
如果任何未来失败,它将在组合两个可完成的未来时至少返回一个可完成的未来。在现实世界中,考虑到 future1
和 future2
是 API 调用,我们如何判断哪个失败并动态返回响应。