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)
}
它與阿卡流有什麼關係? –