【发布时间】:2017-10-06 03:41:38
【问题描述】:
我正在尝试了解 scala 期货中的高阶函数。这段代码是我写的
import scala.concurrent.Future
import scala.util.{Failure, Success}
import scala.concurrent.ExecutionContext.Implicits.global
object App30 extends App {
def getMilk(): String = {
val ans = "5 gallons of milk"
ans
}
def getFlour(): String =
{
val ans= "2 oz of flour"
ans
}
val milkFuture = Future { getMilk() }
val flourFuture = Future { getFlour() }
val resultFut = {
for {
milk <- milkFuture
flour <- flourFuture
result = milk + flour
} yield result
}
resultFut.onComplete{
case Success(answer) => println("The result of getting ingridents is " + answer)
case Failure(exception) => println("could not access future value")
}
}
我的问题是我无法获得所需的字符串 'the result of getting ...' 。我看到调试器以 onComplete 停止并且没有继续成功案例。
我可以知道我哪里出错了吗?如果这是一个愚蠢的错误,请指出,然后我会记下这个问题。否则,请解释什么概念有问题,因为这将对新手有所帮助。
谢谢
【问题讨论】:
-
还有其他一些问题,即在副作用尚未完成时退出的过程更加令人困惑。但我在办公室,找不到他们。
标签: scala