看看 经典的 Option[Future[T]] to Future[Option[T]]
https://stackoverflow.com/questions/38226203/scala-optionfuturet-to-futureoptiont
其中一个的办法是:
```
import scala.concurrent.Future
import scala.concurrent.ExecutionContext
def f[A](x: Option[Future[A]])(implicit ec: ExecutionContext): Future[Option[A]] =
x match {
case Some(f) => f.map(Some(_))
case None => Future.successful(None)
}
```
根本原因就是
Option.map() 和 Future.map() 根本不是一个东西 也没法混在一起用
尽管它们名字一样
单单一个内裤正穿反穿的问题 就得脱下来重新穿一遍
这种问题 在很多其它语言里 根本不存在
甚至在Erlang 里也不存在
你能提供一个更简洁的办法吗?
【 在 xWvxYWYxvWx 的大作中提到: 】
: 因为绝大多数人根本学不会或者不了解。
: 最后5行,说了4个事实,居然全是错的。
: 这就很能说明问题了。
: ...................
--
FROM 52.9.227.*