【发布时间】:2020-04-02 17:13:37
【问题描述】:
我有一个场景,当我在 map 中扭曲对 calltoFutureMethod(data) 方法的调用时,程序在未来调用执行之前结束。
所以我用 Await.result 替换了它,但我不想使用 Await,因为它会阻塞但也不能这样做:
calltoFutureMethod(data) map{
result => sendData(newData)
}
因为尾递归不允许这样做。没有尾递归的 Await 和 Thred.sleep 还有其他方法吗?
@scala.annotation.tailrec
def sendData(
data: List[String]
): Unit =
data match {
case head::tail =>
val result = for {
p <- calltoFutureMethod(data)
} yield p
val putDataList = Await.result(result, 10.seconds)
sendData(newData)
}
case Nil => ...
}
def callToFutureMethod(data: List[String]) =
{
Future
{
}
}
【问题讨论】:
标签: scala tail-recursion