0

根据 Twitter Util 的 Future 文档,Future .within()或.by( ) “如果在给定时间之前不满足,则返回一个失败的新 Future”。

如果 getDownload() 花费的时间少于 5 秒,我试图在 Java 中使用它来返回(未来)字符串,如果 getDownload() 花费的时间超过 5 秒,则返回/抛出异常。

Future<String> futureDownload = getDownload();
return futureDownload.within(DefaultTimer.twitter(), Duration.fromSeconds(5));

我无法让它工作。例如,如果 getDownload() 需要 15 秒,它会在 15 秒后返回。

我错过了什么?

4

1 回答 1

1

在您的情况下,您应该改用Await.result

例子:

Await.result(future, Duration#fromSeconds);
于 2021-08-18T00:03:33.723 回答