我的問題:是否可以使用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
}
}
})
})
你最好展示你的方法的類型或簡化你的問題。在這種形式中,你很難得到任何答案 – Nyavro
你確定這段代碼有效嗎? –
你有不匹配的括號。它不可能預測你想要什麼。 –