我有一个像下面这样的结构
handleWith { mr: MyRequest => (myactor ? mr).mapTo[Either[BadRequest,GoodResponse]] }
根据Either的结果,我想完成基于Right响应的200和基于左侧的某种4XX.我不太确定如何将未来拉入比赛,以便做到这一点.
解决方法
如果我正确地解释您的问题,您想知道如何模式匹配Either值?如果是这样,您可以执行以下操作:
handleWith { mr: MyRequest => (myactor ? mr).mapTo[Either[BadRequest,GoodResponse]] match { case Left(badRequest) => someSortOf4xxx(badRequest) case Right(goodResponse) => anOkResponse(goodResponse) } }