复杂的未来展开
Complex future unwraping
我知道我可以展开
Future[Future[Seq]] => Future[Seq]
有flatMap功能
但是我如何获得以下映射?
Future[Seq[Future[Seq]]] => Future[Seq[Seq]]
Future.sequence
会将 Seq[Future[...]]
更改为 Future[Seq[...]]
所以,像这样:obj.flatMap(x => Future.sequence(x))
也许吧?
这对我来说就像魔法一样有效:
implicit class RichFutureSeqFutures[A](futureSeqFutures: Future[Seq[Future[A]]]) {
def flattenInner: Future[Seq[A]] = {
futureSeqFutures flatMap {Future.collect(_)}
}
}
来自 https://coveralls.io/builds/3016777/source?filename=utils%2Fsrc%2Fmain%2Fscala%2Fcom%2Ftwitter%2Ffinatra%2Fconversions%2Ffuture.scala "here" 的来源。
我知道我可以展开
Future[Future[Seq]] => Future[Seq]
有flatMap功能
但是我如何获得以下映射?
Future[Seq[Future[Seq]]] => Future[Seq[Seq]]
Future.sequence
会将 Seq[Future[...]]
更改为 Future[Seq[...]]
所以,像这样:obj.flatMap(x => Future.sequence(x))
也许吧?
这对我来说就像魔法一样有效:
implicit class RichFutureSeqFutures[A](futureSeqFutures: Future[Seq[Future[A]]]) {
def flattenInner: Future[Seq[A]] = {
futureSeqFutures flatMap {Future.collect(_)}
}
}
来自 https://coveralls.io/builds/3016777/source?filename=utils%2Fsrc%2Fmain%2Fscala%2Fcom%2Ftwitter%2Ffinatra%2Fconversions%2Ffuture.scala "here" 的来源。