У меня есть сценарий, в котором программа заканчивается до того, как будет выполнен будущий вызов, когда я деформирую вызов метода calltoFutureMethod (data) в map.
Поэтому я заменил его на 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
{
}
}