gpt4 book ai didi

java - 打破 CompletableFutures 链

转载 作者:行者123 更新时间:2023-12-01 11:19:31 27 4
gpt4 key购买 nike

您可以使用 CompletableFuture 链接运行 block ,如下所示:

CompletableFuture
.supplyAsync(block1)
.thenApply(block2)
.thenApply(block3)...

我的函数返回一个这样的带有 2 个 block 的 CompletableFuture,因此用户可以根据需要继续链接更多 block 。

public CompletableFuture foo() {
return CompletableFuture
.supplyAsync(block1).
.thenApply(block2);
}

用户可以这样使用:

foo().thenApply(block3).join();

我想在我的方法中添加 .exceptionaly() 处理程序(这样用户就看不到它),但它可以破坏链和任何可能的用户链如果我的任何一个 block 失败了!换句话说 - 如果 block1block2 失败,我不想继续使用他可以链接的任何可能的用户 block (block3)到 foo 的返回值上。

额外问题:Java 世界中还有比 CompletableFuture 更好的东西吗?

最佳答案

没有理由这会起作用。很简单,因为thenAsync可能会更改返回内容的类型值(从 CompletableFuture<A>CompletableFuture<B> )并在方法 foo 中我们不知道用户将添加什么 block 。

所以这个想法并不自然,这也不是 future 的运作方式。

关于java - 打破 CompletableFutures 链,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31419235/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com