我注意到ready
的方法result
和scala.concurrent.Future
无法直接调用。当我在REPL中调用它时,我收到错误。因此,我必须拨打Await.ready
和Await.result
。
没关系,但看起来有点尴尬。所以现在我想知道:
答案 0 :(得分:4)
原因是in official doc:
Future trait使用方法方法实现Awaitable trait ready()和result()。这些方法不能直接调用 客户端 - 它们只能由执行上下文调用。
通过这种方式,库设计人员强制您在适当的环境中使用这些方法(执行上下文,可能是第三方,或通过Awaitable对象明确表示阻塞操作)。