나는 경로 클래스 (보낸 사람), 배우 및 도우미 클래스가 있습니다. routes 클래스에서 배우에게 요청을 보내고 Future 응답을받습니다. 이제 저는 헬퍼에게 미래의 반응을 전달하고 거기서 해결하기를 원합니다.[Scala, Akka] : 미래 onComplete가 발신자 외부에서 실행되지 않습니다.
TestRoute.scala :
val response: Future[Any] = (actor ? request) (timeout)
handler(response)(executionContext)
TestHelper.scala :
def handler(futureResponse: Future[Any])(implicit ec: ExecutionContext): StandardRoute = {
onComplete(futureResponse) {
case Success(s) => complete(s)
case Failure(f) => reject
}
}
문제는 TestHelper.scala
로 이동할 때 TestRoute.scala
내에서 onComplete
작품, 그것이 작동하지 않는 상태이다. 어떤 아이디어가 문제일까요?
는 편집 :하여 "그것이 작동하지 않습니다, 나는 전체의 onComplete 함수가 스킵 전혀 실행되지되지 않는다는 것을 의미합니다 - 그냥 건너 뛰고 오류를
몇 가지가 있습니다
: 핸들러의 서명을 바꿀 것
: 난 당신이 뭔가를 할 생각? – Pedro
귀하의 질문에 더 많은 맥락이 필요합니다. 내가 말할 수있는 것부터, 당신의 핸들러 함수는 새로운 Future [StandardRoute] 나 부작용을 리턴해야합니다. – zlace
코드는 대략 나에게 괜찮은 것처럼 보입니다. 코드를 "건너 뛴다"고 말하면 어떻게 운동합니까? 대/소문자가 평가되지 않도록 인쇄/로그 문을 추가하려고 시도 했습니까? –