鉴于期货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会返回一个展平的结果。有这样的事吗?
答案 0 :(得分:4)
string
中没有vector
的理由。它应该是for-comprehension中的另一条线。
flatMap
我认为它不会比那更简洁。