我将使用Scala Futures来实现从网络服务键/值存储中进行线程化批量获取。
import scala.concurrent._
import scala.concurrent.ExecutionContext.Implicits.global
import scala.concurrent.duration._
def bulkGet(keys: List[String])
val listFut = keys.map( future{ "network get request here" } )
val values = Future.sequence(listFut)
Await.result(values, Duration(10, SECONDS))
出现编译错误
[info] Compiling 1 Scala source to .../target/scala-2.10/classes...
[error] .... type mismatch;
[error] found : scala.concurrent.Future[List[String]]
[error] required: scala.concurrent.Awaitable[scala.concurrent.Future[List[String]]]
[error] Await.result(values, Duration(10, SECONDS))
^
我到底做错了什么?
我按照文档来阻塞结果:
http://docs.scala-lang.org/overviews/core/futures.html
按定义,scala.concurrent.Future不是可等待的吗?我该如何强制转换它?