当前位置:  开发笔记 > 编程语言 > 正文

如何将Future [Seq [A]]转换为包含Seq [A]的Future?

如何解决《如何将Future[Seq[A]]转换为包含Seq[A]的Future?》经验,为你挑选了1个好方法。

我正在使用Finatra应用程序,我有一个Future[Seq[A]](来自Finagle电话).不过,我需要将其转换成一个包含一个新的对象Seq[A],例如

case class Container[A](s: Seq[A])

那会导致Future[Container].

虽然我可以执行地图Future[Seq[A]],但目前还不清楚如何到达Future[Container[Seq[A]].



1> Marth..:

.mapFutureContainer.apply:

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(_))自己的喜好编写它.

推荐阅读
郑小蒜9299_941611_G
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有