加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

准备好的方法和Scala中Future的结果不能直接调用

发布时间:2020-12-16 18:50:08 所属栏目:安全 来源:网络整理
导读:我注意到,方法就绪并且 scala.concurrent.Future的结果不能直接调用.当我在REPL中调用它时,我收到错误.因此,我必须调用Await.ready和Await.result. 没关系,但看起来有点尴尬.所以现在我想知道: 为什么不能直接调用它们; 在这种情况下,为什么它们作为公共API
我注意到,方法就绪并且 scala.concurrent.Future的结果不能直接调用.当我在REPL中调用它时,我收到错误.因此,我必须调用Await.ready和Await.result.

没关系,但看起来有点尴尬.所以现在我想知道:

>为什么不能直接调用它们;
>在这种情况下,为什么它们作为公共API公开.

解决方法

原因列于 in official doc:

The Future trait implements the Awaitable trait with methods method
ready() and result(). These methods cannot be called directly by the
clients– they can only be called by the execution context.

这样,库设计者强制您在适当的环境中使用这些方法(执行上下文,可能是第三方,或通过Awaitable对象来明确表示阻塞操作).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读