在下面的示例中,我遇到了异常java.util.NoSuchElementException: Future.filter predicate is not satisfied
当检查if( i == 2 )
失败时,我希望得到结果Future( Test2 )
。如何处理涉及组合 futures 的 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
predicate
方法中,最好使用Future.successful(())
而不是Future(())
。 - Ori Popowski