【发布时间】:2018-02-03 22:34:00
【问题描述】:
我有一个名为 Source 的类,它有惰性 val isValid,它会进行一些需要时间的网络检查。我已经让它返回 Future[Boolean] 所以它不会阻塞主线程:
lazy val isValid: Future[Boolean] = doSomeChecks()
现在,我想检查几个来源并丢弃无效的来源。
这是一些伪代码:
val sources = Seq(Source1, Source2,...)
val validOnes: Seq[Source] = sources.filter(_.isValid)
我正在考虑某种方法,该方法将从 isValid 返回的 Future[Boolean] 转换为在验证检查完成后将使用整个 Source 对象解析的其他 Future。
最好的方法是什么?
【问题讨论】: