【发布时间】:2019-05-25 11:14:27
【问题描述】:
我有一个 Future[Option[String]] 函数。仅当未来成功且字符串存在时,我才需要获取转换后的字符串。在其他情况下,我只需要得到一个 None (没有任何错误或异常)
我尝试使用 for comprehensions(以及 maps/flatMaps),但显然我的结果是键入 Nothing 而不是 Option[String]。
def getOption: Option[String]
def getOptionResult: Future[Option[String]]
def someActions: String
val resultO: Option[String] = for {
myString: String <- getOption
optionResult: Option[String] <- getOptionResult
result: String <- optionResult
} yield {
someActions(result)
}
处理这种情况最优雅的方法是什么?
【问题讨论】:
-
在您的示例代码中,
myString的用途是什么?someActions()的返回类型是什么?
标签: scala optional future for-comprehension