如何在 Scala 中获得组合未来的结果
How to get both result in composed future in scala
我有两个功能
f1() => Future[T]
f2(t: T) => Future[T1]
我可以通过
获得T1
f1().flatMap(t => f2(t))
但是我想同时获取T和T1,比如(T, T1),我该怎么办呢
可以在flatMap中映射f2的结果:
f1().flatMap(t => f2(t).map((t, _)))
或使用理解:
for {
t <- f1()
t1 <- f2(t)
} yield (t, t1)
或者,您可以将两个期货压缩到一个 returns 一个元组:
val a = f1()
val b = a.flatMap(f2)
val c = a zip b
我有两个功能
f1() => Future[T]
f2(t: T) => Future[T1]
我可以通过
获得T1f1().flatMap(t => f2(t))
但是我想同时获取T和T1,比如(T, T1),我该怎么办呢
可以在flatMap中映射f2的结果:
f1().flatMap(t => f2(t).map((t, _)))
或使用理解:
for {
t <- f1()
t1 <- f2(t)
} yield (t, t1)
或者,您可以将两个期货压缩到一个 returns 一个元组:
val a = f1()
val b = a.flatMap(f2)
val c = a zip b