Scala Avenir avec filtre pour la compréhension

Dans l'exemple ci-dessous j'ai accès à l'exception java.util.NoSuchElementException: Future.filter predicate is not satisfied

Je veux avoir le résultat Future( Test2 ), quand la case if( i == 2 ) échoue. Comment dois-je traiter le filtre/si dans une compréhension qui traite de la composition des contrats à terme?

Ci-dessous est un exemple simplifié qui travaille à la Scala REPL.

Code:

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
InformationsquelleAutor Magnus | 2013-07-25