我对以下代码有疑问。我希望在所有 groundCoffee、heaterWater、frothedMilk 方法完成后触发“combine”方法。它们将被同时触发。所有 4 种方法磨碎、加热水、泡沫牛奶、冲泡都是使用未来同时执行的。
def prepareCappuccino(): Future[Cappuccino] = {
val groundCoffee = grind("arabica beans")
val heatedWater = heatWater(Water(20))
val frothedMilk = frothMilk("milk")
for {
ground <- groundCoffee
water <- heatedWater
foam <- frothedMilk
espresso <- brew(ground, water)
} yield combine(espresso, foam)
}
当我执行上述方法时,我得到的输出如下
start grinding...
heating the water now
milk frothing system engaged!
并且程序在此之后退出。当我试图学习期货时,我从一个网站上得到了这个例子。如何让程序等待,以便在所有期货返回后触发组合方法?