1

スプレー 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
4

1 に答える 1