Scala,恢复嵌套 future ?

标签 scala future recover

我在 Scala 中有一些嵌套的 Future。我想知道 - 我可以使用一个 recover 来捕获所有可抛出的东西,还是每个 Future 都应该有自己的恢复? 想象一下 method1 和 method2 都生成一个 Future[Option[A]],

method1.flatMap {

  case Some(object1) =>

    method2(object1).map {
      case Some(object2) => ...
      case None => ...
    }.recover { case t => .... } <--- DO I NEED THIS?

  case None => ....

}.recover { case t => ... } <--- OR THIS ALONE IS ENOUGH?

最佳答案

只要像示例中那样展平所有嵌套的 Future,在哪个级别引发异常并不重要。如果嵌套结构中的某个点抛出异常,那么您将停止进一步向下下降。由于扁平化,抛出的异常将被提升到顶层。从那里您可以使用 recover 方法处理异常。

关于Scala,恢复嵌套 future ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32275691/

相关文章:

eclipse - 如何在 Eclipse 中恢复文件?

scala - Scala 的 ListBuffer 大小的运行时间是多少?

scala - SBT/Scala : macro implementation not found

scala - 类型不匹配;发现 : scala. 并发。Future[play.api.libs.ws.Response] 需要 : play. api.libs.ws.Response

database - 从原始物理文件恢复 postgreSQL 数据库

Azure VM 无法启动 - 错误为 'Fatal error C0000034 applying update operation 63 of 82641'

scala - 使用 X.par.view 与 X.view.par 构建 Scala 并行 View ?

scala - 为scala中的函数参数设置默认值

scala - 使用返回 Future 的二元运算折叠序列

java - 您可以将 Future/Futuretask 对象与 Spring TaskExecutors 一起使用吗?