0
鑑於期貨fa, fb, fc
屈服,我可以用f: Function1[(A,B,C), Future[D]]
,返回一個Future[D]
或者通過:未來flatMap
(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的形式將會很棒。有這樣的事嗎?
下面是一個類似的問題試圖用無形體做到這一點:https://stackoverflow.com/questions/23453570/using-shapeless-to-convert-tuple-of-future-to-future-of-tuple-by- hlist的方式 –