2
我有一個Future[Future[(String,String)]]
,我想用理解將它轉換爲Future[(String,String)]
。在Scala中使用理解轉換未來[Future [(String,String)]]到Future [(String,String)]
我有一個Future[Future[(String,String)]]
,我想用理解將它轉換爲Future[(String,String)]
。在Scala中使用理解轉換未來[Future [(String,String)]]到Future [(String,String)]
不一定需要理解,一個簡單的方法涉及使用flatMap
而不是identity
。
例如考慮
import scala.concurrent.Future
import scala.concurrent.ExecutionContext.Implicits.global
def f: Future[Future[(String,String)]] = Future { Future {("a","aa")} }
然後
f.flatMap(identity)
res: scala.concurrent.Future[(String, String)] = [email protected]
import scala.concurrent.Future
import scala.concurrent.ExecutionContext.Implicits.global
val futureOfFutures: Future[Future[(String,String)]] = Future { Future {("a","aa")} }
for(futureOfFuture <- futureOfFutures; futureResult <- futureOfFuture) yield futureResult
萬一你想用的理解。這是你如何做到的。
可能重複的[我如何將這個未來的結構扁平化?](http://stackoverflow.com/questions/15835222/how-can-i-flatten-this-futuret-structure) – 2014-09-05 02:37:06