Future Any 不符合 Future E

Future Any does not conform with Future E

我在 Scala 中尝试 return 方法的结果时遇到问题。

我正在使用 Play 2.6 和 ReactiveMongo。

以下图片错误:

有人可以提供一些线索吗?

Future.map 方法接受 函数 来映射 Future 的结果,因此对于您的代码,它映射 result' s Future 结果,等于:

  result.map(writeResult: WriteResult => {
    case Success => entity
    case Failure(f) => f.printStackTrace()
  })

如上面的代码,你试图returnWriteResultUnit,所以map结果类型是Any,return Future[Any] 类型。所以抛出类型不匹配编译错误。

其实你需要的是:result.map(writeResult: WriteResult => entity)。您可以调用 create 方法,例如:

  val res = create(entity)
  res.onComplete {
    case Success(e) => println(e)
    case Failure(f) => f.printStackTrace()
  }

我怀疑你真正想要的是Future.transform而不是map。像这样

  val result: Future[WriteResult] = ??? 
  result.transform(_ => entity,
    e => {
      e.printStackTrace()
      e // or return here your custom wrapper exception
    })