Scala 如何将期货[Seq[a]]转换为包含Seq[a]的期货?
我正在开发一个Finatra应用程序,我有一个Scala 如何将期货[Seq[a]]转换为包含Seq[a]的期货?,scala,finagle,finatra,Scala,Finagle,Finatra,我正在开发一个Finatra应用程序,我有一个未来[Seq[a]](来自Finagle call)。但是,我需要将其转换为一个新对象,例如,该对象包含Seq[a] case class Container[A](s: Seq[A]) 这将导致未来的[Container] 虽然我可以在Future[Seq[A]]上执行映射,但不清楚如何使用容器到达Future[Container[Seq[A]].map在Future上映射。应用: scala> case class Container[A
未来[Seq[a]]
(来自Finagle call)。但是,我需要将其转换为一个新对象,例如,该对象包含Seq[a]
case class Container[A](s: Seq[A])
这将导致未来的[Container]
虽然我可以在
Future[Seq[A]]
上执行映射,但不清楚如何使用容器到达Future[Container[Seq[A]]
.map
在Future
上映射。应用:
scala> case class Container[A](s: Seq[A])
defined class Container
scala> val f = Future.successful(List(1, 2, 3))
f: scala.concurrent.Future[List[Int]] = scala.concurrent.impl.Promise$KeptPromise@3f363cf5
scala> f.map(Container.apply)
res2: scala.concurrent.Future[Container[Int]] = scala.concurrent.impl.Promise$DefaultPromise@3d829787
scala> res2.value
res3: Option[scala.util.Try[Container[Int]]] = Some(Success(Container(List(1, 2, 3))))
f.map(Container.apply)
是f.map(Container.apply())的缩写
,后者又是f.map(v=>Container.apply(v))的缩写
请注意,您也可以使用容器编写f.map(Container()))
,无论您喜欢哪个。.map
覆盖未来的。应用:
scala> case class Container[A](s: Seq[A])
defined class Container
scala> val f = Future.successful(List(1, 2, 3))
f: scala.concurrent.Future[List[Int]] = scala.concurrent.impl.Promise$KeptPromise@3f363cf5
scala> f.map(Container.apply)
res2: scala.concurrent.Future[Container[Int]] = scala.concurrent.impl.Promise$DefaultPromise@3d829787
scala> res2.value
res3: Option[scala.util.Try[Container[Int]]] = Some(Success(Container(List(1, 2, 3))))
f.map(Container.apply)
是f.map(Container.apply())的缩写
,后者又是f.map(v=>Container.apply(v))的缩写
请注意,您也可以编写它f.map(Container()))
,任您选择。我建议阅读。我建议阅读。很好的解释!我混淆了Seq和Future之间的映射函数。很好的解释!我混淆了Seq和Future之间的映射函数。