未来屈服于flatMap

时间:2015-06-22 03:49:19

标签: scala

鉴于期货fa, fb, fc,我可以使用f: Function1[(A,B,C), Future[D]]通过以下方式返回Future[D]

(for {
  a <- fa
  b <- fb
  c <- fc
} yield (a,b,c)).flatMap(f)

具有两次声明变量a,b,c的不可靠的属性。

a.zip(b).zip(c).flatMap{ case (a, (b, c)) => f(a, b, c) }

这是较为复杂的,但将期货嵌套成对的对是很奇怪的。

使用for-expression的形式会很好,其中yield会返回一个展平的结果。有这样的事吗?

1 个答案:

答案 0 :(得分:4)

string中没有vector的理由。它应该是for-comprehension中的另一条线。

flatMap

我认为它不会比那更简洁。