기능의 일부로 HTTP 요청을하는 라이브러리를 구축하고 있습니다. 여러 환경에서 작동하도록하려면 배포 할 때 Futures를 사용하거나 사용하지 않고 작업 할 수 있어야합니다.동기식 스칼라 별도 스레드가없는 미래
비동기 HTTP 구현을 사용하는지 여부에 따라 유형이 Future
인 라이브러리 인스턴스 또는 유형이 Id
인 인스턴스를 만들 수 있도록 라이브러리 매개 변수의 응답 유형을 지정하는 것이 하나의 옵션입니다. (Id
은 정체성 모나드 일 수 있습니다. 사용자에게 일관된 인터페이스를 제공하기에 충분합니다.)
저는이 방법으로 시작했지만 복잡해졌습니다. 내가 정말로하고 싶은 것은 미래의 모든 유형을 미래의 복싱 동기식 반응을 필요에 따라 사용하는 것입니다. 그러나 Futures를 사용하면 항상 threadpool이 필요하다는 것을 이해합니다. 예 : AppEngine (필수 환경).
현재 스레드에서 실행될 값에서 미래를 작성하여 스레드를 생성 할 수없는 환경에서 문제를 일으키지 않는 방법이 있습니까?
(PS 추가 요구 사항으로, 나는 scala.concurrent에서 사용할 수있는 기능 제한 할 수있는 다시 스칼라 v2.9.1에 대한 라이브러리를 구축 교차 할 수 있어야합니다) 당신이하고자 이해하는 바로는
'미래를 만들 수있는 방법이 있습니까? 현재 쓰레드에서 실행될 것입니다.'왜 미래를 사용합니까? ' – Jatin
제가 설명했듯이, 구현 전반에 걸쳐 일관된 반환 유형을 만들기 위해 – adamnfish
나는이 질문을 이해하지 못해 죄송합니다. 이미 결과의 최종 가치가 있고 미래 래퍼가 필요하다면 '약속'을 사용하는 것이 어떻습니까? – Jatin