0
嗨我正在尝试处理文件中的数据。斯卡拉等待未来的列表执行
这是我在下面使用的代码。
我有一份期货清单,并试图从这些期货中获得产出。
一切都很好,但返回的最后一行在OnSuccess之前执行。
如何在没有阻止操作的情况下更改该行为。
def processRow(rowNumber: Int, row: String, delimiter: String, rules: List[Rule]): RowMessage = {
var cells = row.split(delimiter)
var passedRules = new ListBuffer[RuleResult]()
val failedRules = new ListBuffer[RuleResult]()
val rulesFuture = rules.map {
i => Future {
val cells = row.split(delimiter);
//some processing....
}
}
val f1 = Future.sequence(rulesFuture)
f1 onComplete {
case Success(results) => for (result <- results) (result.map(x => {
if (x.isPassFailed) {
passedRules += x
}
else {
failedRules += x
}
}))
case Failure(t) => println("An error has occured: " + t.getMessage)
}
return new RowMessage(passedRules.toList, failedRules.toList)
}
它与阿卡流有什么关系? –