2
同時獲得結果組成的將來,我有兩個功能如何在斯卡拉
f1() => Future[T]
f2(t: T) => Future[T1]
我可以
f1().flatMap(t => f2(t))
得到T1但是我想要得到T和T1,例如(T ,T1),我怎麼能做到這一點
同時獲得結果組成的將來,我有兩個功能如何在斯卡拉
f1() => Future[T]
f2(t: T) => Future[T1]
我可以
f1().flatMap(t => f2(t))
得到T1但是我想要得到T和T1,例如(T ,T1),我怎麼能做到這一點
可以f2的結果映射flatMap內:
f1().flatMap(t => f2(t).map((t, _)))
或者使用-理解:
for {
t <- f1()
t1 <- f2(t)
} yield (t, t1)
或者,您也可以壓縮2個期貨它返回一個元組:
val a = f1()
val b = a.flatMap(f2)
val c = a zip b