내부 변수 값을 변경합니다. 그것은지도 내부에서 값이 바뀌었지만 바깥 쪽지도에서는 0으로 다시 돌아갑니다. 뭔가 잘못 됐니? 나는 초보자 다.스칼라, 나는 아래의 코드를 가지고 미래
@Mikel는
val trxRequest: WSRequest = ws.url(route.transcationRoutes).withHeaders("Accept" -> "application/json")
val futureResponse: Future[WSResponse] = trxRequest.post(Json.obj("trxtype" -> trxType, "trxvariable" -> trxVariable, "account" -> account.toJson))
var responseStatus = 0
//Need to retrieve as future
val futureResult: Future[Any] = futureResponse.map {
response => {
logkey = (LoginKeyUtils.getEncryptedKey(accountId))
session.addSession(accountId -> logkey)
responseStatus = response.status;
println(responseStatus)
}
}
// wait for the result
Await.result(futureResult, 5000 millis)
Ok(responseStatus)
우리는 종종 작업 비동기 등을 위해 향후 구성/변환을 사용하는 HTTP 응답 등의
Future[Result]
소요 될 수 있습니다. 여기서'Await'을 사용하면 재생 메인 스레드를 차단합니다. 'Await'을 많이 사용한다면 메인 쓰레드 풀이 더 많은 쓰레드를 갖도록 설정해야합니다. – jilen