以下の例では、例外が発生しますjava.util.NoSuchElementException: Future.filter predicate is not satisfied
Future( Test2 )
チェックif( i == 2 )
が失敗したときに結果を取得したい。フューチャの構成を扱う for 内包内で filter/if を処理するにはどうすればよいですか?
以下は、Scala REPL で動作する簡単な例です。
コード:
import scala.concurrent.Future
import scala.util.{ Try, Success, Failure }
import scala.concurrent.ExecutionContext.Implicits.global
val f1 = Future( 1 )
val f2 = for {
i <- f1
if( i == 2 )
} yield "Test1"
f2.recover{ case _ => "Test2" }
f2.value