If you have no more than 22 variables:
val (a, b, c, d, ..., v) = (for { a0 <- someMethodReturningFuture b0 <- someMethodReturningFuture(a0) ... u0 <- someMethodReturningFuture(t0) } yield { (a0, b0, ..., u0, someCalculation(u0)) }).result
source share