撰写未来名单Akka Scala

时间:2015-12-18 12:27:46

标签: scala akka

我试图从Akka演员那里收集未来自定义对象列表,这是我的代码:

    var game_manager_backends: List[ActorRef] = List()

    implicit val ec = context.dispatcher
    val taskFutures: List[Future[Game]] = game_manager_backends map { gm_be =>
        implicit val timeout = Timeout(5 seconds)
        val result = gm_be ? GameStatus
    }


    val searchFuture = Future sequence taskFutures

    searchFuture.onSuccess {
      case results: List[Game] => origin ! results
    }

game_manager_backends

是包含我想要问Game个对象的所有actor的List,然后我想收集列表中的所有这些Game对象并发送回原始actor,这个实现是给我map行的错误:

type mismatch;  found   : List[Unit]  required: List[scala.concurrent.Future[common.Game]]

我该如何解决这个问题?

由于

2 个答案:

答案 0 :(得分:0)

  1. 您得到Unit因为map内部没有返回任何值(修正了上面提到的评论内容)。

  2. ?请求akka返回Future[Any],但您希望Future[common.Game]解决此问题 - 需要额外的映射。

  3. result map { case a@Game => a }

答案 1 :(得分:0)

val result = gm_be ? GameStatus更改为val result = (gm_be ? GameStatus).mapTo[Game]。您也不需要它是val