У меня есть два актера, закодированные следующим образом.
class Actor1 extends Actor {
val r : ActorRef = actorOf (Props[Actor2], "master")
def receive: Receive = {
case class Mul (a,b) =>
r ! CalcMul (a,b)
case class MulReply (ans) =>
println("Multiply result : " + ans)
// want to send "ans" value to testObject..
}
}
class Actor2 extends Actor {
def receive: Receive = {
case class CalcMul (a,b) =>
sender ! MulReply (a*b)
}
}
object testObject extends App {
val a = ActorSystem("ActorSystem").actorOf(Props[Actor1], "root")
a ! CalcMul (5, 15)
// how to receive "ans" value here?
}
Я могу получить и распечатать результат в Actor1
, но мне нужны эти значения в testObject
, чтобы я мог использовать их для будущих операций.Не может быть метод receive
в testObject
, как это сделано для получения сообщения в Actor1
от Actor2
, поэтому не может отправить их методом tell
.