我有一个类似下面的结构

    handleWith {
               mr: MyRequest =>
                (myactor ? mr).mapTo[Either[BadRequest, GoodResponse]]

             }


根据Either的结果,我想以基于Right响应的200和基于left的某种4XX来完成。我不确定如何将未来带入比赛。

最佳答案

如果我正确解释了您的问题,您想知道如何模式匹配Either值吗?如果是这样,您可以执行以下操作:

handleWith {
  mr: MyRequest =>
   (myactor ? mr).mapTo[Either[BadRequest, GoodResponse]] match {
     case Left(badRequest) => someSortOf4xxx(badRequest)
     case Right(goodResponse) => anOkResponse(goodResponse)
   }
}

09-26 09:12