在期货中使用flatmap的示例
我无法理解如何在将来使用flatMap。 '因为'看起来很好。在期货中使用flatmap的示例
object ConcurrencyExample extends App { val gpf= Future {gpf operations}
val ccf = Future{ccf operations}
//how can I convert this for to flatMap?
val atbf = for {g <- gpf
c <- ccf } yield {atbf operations}
Await.result(atbf,1000 millis)
}
回答:
的理解可以去加糖入map
,flatMap
和filter
。
这里是你如何做到这一点。
for { foo <- FooF
bar <- BarF(foo)
baz <- BazF if bar > 0
bow <- BowF(baz)
} yield (baz + 1)
上述事情可被转化为
FooF.flatMap { foo => //inner bindings become flatMap BarF(foo).flatMap { bar =>
BazF.filter { baz => baz > 0 } //guards become filter
.flatMap { baz =>
BowF(baz)
}.map { baz => baz + 1 } // yield becomes map
}
}
所以你换理解变得
gpf.flatMap { _ => ccf }.map { _ => atbf }
以上是 在期货中使用flatmap的示例 的全部内容, 来源链接: utcz.com/qa/258065.html