我正在嘗試使用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不會被定義爲Awaitable?我如何強制它呢?
謝謝。仍然在學習,看來問題出在我爲該方法指定的返回類型(未包含在示例中),最後一行Await.result(...) –