Future私は Scala 2.10の新しい API がとても気に入っています。それを単純なスクリプトに使用しようとしています。プログラムの要点は次のとおりです。
- ある URL への HTTP リクエスト
- 応答に基づいて必要なユーザー入力
- さらなる処理
アイデアは、すべてを Future のチェーン (フラットマップなど) として実装することですが、ここに私の問題があります:
現在、SBT でテストを行っているため、メイン スレッドが終了すると、SBT は REPL に戻ります。その間、私のFuture計算はまだユーザー入力を待っています。readLine入力しようとすると、ステップ 2 の呼び出しが、SBT が行おうとしている入力と競合しているように見えます。
たとえば、意図した入力が だったabcdefghijklmnop場合、プログラムは のようなランダムなサブセットを受け取り、adghipそれが終了すると、SBT はそれbcefjklmnoがコマンドではないことを教えてくれます。
どうすれば...
- フューチャーのデーモン スレッドの前にメイン スレッドが終了するのを遅らせる
- または
readLine、SBT と競合しない他の呼び出しに置き換えます