【发布时间】:2016-12-25 04:40:11
【问题描述】:
我的问题:是否可以用 for-comprehension 来简化这个嵌套表达式?
run(dbAction).flatMap(insertedJobs => {
Future.sequence(insertedJobs.map { job =>
recordingBean.findStreamsForInterval(job.mediaSource, job.begin, job.end) map { stream =>
if (stream.nonEmpty) {
recordingBean.findRecordingLocationsForInterval(stream.head.stream, job.begin, job.end).map(recordingLocations =>
recordingLocations.map(_.size.getOrElse(0L)).sum).flatMap { expectedSizeInBytes =>
updateSize(job.id.get, expectedSizeInBytes)
}
job
} else {
job
}
}
})
})
【问题讨论】:
-
您最好显示您的方法类型或简化您的问题。在这种形式下,你几乎得不到任何答案
-
你确定这段代码有效吗??
-
您的括号不匹配。无法预测您想要什么。
标签: scala for-loop dictionary future flatmap