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