Scala AKKA访问变量或返回值

use*_*739 5 scala akka playframework

这是我的代码:

class testActor extends Actor   {
    var test = "test2"
    def receive = {
            case "test" ? 
                    test="works"
                    "works"

    }
}


 def test = Action {
    var test = "test"
    val system = ActorSystem("MySystem")
    val myActor = system.actorOf(Props[testActor.testActor], name = "testActor")

    myActor ! "test"

    test = myActor.test

Ok(views.html.test(test))
}
Run Code Online (Sandbox Code Playgroud)

行:test = myActor.test不起作用.

我要么需要一种方法来访问actor函数返回的内容,在本例中是"works",或者是一种访问Actor内变量的方法.

And*_*yuk 9

要将结果返回给发件人,请向其发送消息:

def receive = {
  case "test" => sender ! "works"
}
Run Code Online (Sandbox Code Playgroud)

等待响应使用Await.result()调用:

  implicit val timeout = Timeout(Duration(1, TimeUnit.SECONDS))
  test = Await.result(myActor ? "test", Duration(1, TimeUnit.SECONDS))
Run Code Online (Sandbox Code Playgroud)