【发布时间】:2016-10-27 01:39:15
【问题描述】:
我有一个Future[Either[A, B]] 和一个从B 提供Future[C] 的函数。
我需要将Future[Either[A, B]] 转换为Future[Either[A, C]]。
有没有直接获取Future[Either[A, C]] 而不是Future[Either[A, Future[C]]] 的方法?
我正在考虑类似的事情:
val eventuallyInitialValue: Future[Either[A, B]] = ???
val result: Future[Either[A, C]] = for {
e: Either[A, B] <- initialValue
c: C <- service.getValue(e.right)
} yield e.right.map(_ => c)
这只是伪代码,因为service.getValue(e.right) 无法编译。正确的做法是什么?
【问题讨论】: