在期货中使用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)

}

回答:

的理解可以去加糖入mapflatMapfilter

这里是你如何做到这一点。

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

回到顶部