scala - 在 Scala 中将 Future[Future[(String,String)]] 转换为 Future[(String,String)] 用于理解

标签 scala future for-comprehension

我有一个 Future[Future[(String,String)]],我想使用 a 将其转换为 Future[(String,String)]为了理解。

最佳答案

不一定需要 for 理解,一种简单的方法是使用 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)] = Promise$DefaultPromise@1849937

关于scala - 在 Scala 中将 Future[Future[(String,String)]] 转换为 Future[(String,String)] 用于理解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25677830/

相关文章:

Scala 的要么元组为 Right

scala - 两个列表的笛卡尔积

scala - 在 Spark 中为 DataFrame 模式定义 DateType 转换

scala - 从 Scala 宏更改编译器的类路径?

scala - 如何忽略 Scala 中的 "-Ywarn-unused"警告?

Scala Future onComplete 回调不会立即执行

java - Guava CheckedFuture<X,Y> 映射到 CheckedFuture <Z,Y>,无阻塞

java - 在scala中获取Java枚举值数组

unit-testing - 在单元测试中未调用Dart Future catchError

scala - 为什么Scala为涉及Either和值定义的 'Product'表达式选择类型 'for'