以下のコードに問題があります。すべてのgroundCoffee、heaterWater、frothedMilkメソッドが完了した後に「combine」メソッドがトリガーされるようにします。それらは同時にトリガーされます。4 つのメソッドすべては、future を使用して同時に実行されます。
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!
この後、プログラムは終了します。未来を学ぼうとしているときに、この例をサイトから入手しました。すべての先物が戻った後に結合メソッドがトリガーされるように、プログラムを待機させるにはどうすればよいですか?