スプレー API を使用して、サーバーからの要求をリッスンします。ある特定の scala クラスでの計算は、Spray がアプリケーション全体で応答するのをブロックしてしまいます。これは問題を少し単純化したものですが、さらに詳しい情報を提供できます。必要に応じて。
class SomeClass(implicit execc: ExecutionContext){
implicit val x = ...
val foo = Await.result(...someFunc(x))
}
このインポートを追加すると、問題が解決しました:
import scala.concurrent.ExecutionContext.Implicits.global
これがどのように、またはなぜ機能したかを誰かが説明できますか?
================================================== =
編集:
OuterClass は SomeClass をインスタンス化しますが、それ自体が ExecutionContext パラメーターでインスタンス化されることはありません。デフォルトでグローバル実行コンテキストを使用しているように見えますが、それがブロックされている理由ですか?
class OuterClass(executor: ExecutionContext){
val s = new someClass
}
val x = (new OuterClass).someFunction