scala用于理解条件操作

时间:2017-02-28 06:13:57

标签: scala playframework future

在我的scala计划中,我很少进行理解。我希望像这样有一个if条件,

user <- userDao.findUser(authToken)
haveDevice <- userDao.haveDevice(deviceId, deviceType)
if (haveDevice) {
   r <- userDao.addDevice(user.id, deviceId, deviceType)
}

但是上面的代码无效,怎么办呢?感谢

1 个答案:

答案 0 :(得分:0)

在for comprehension中使用if条件的正确语法如下所示。

for {
  user <- userDao.findUser(authToken)
  haveDevice <- userDao.haveDevice(deviceId, deviceType)
  r <- userDao.addDevice(user.id, deviceId, deviceType) if haveDevice
}

假设你的理解是对Future进行操作,如果if条件失败则整个理解返回失败的Future并出现错误

  

java.util.NoSuchElementException:Future.filter谓词不是   纳