我已經對如何在listbuffer恰好在循環調用的scala future中構造的情況下如何獲得字符串列表緩衝區的內容感到震驚。讓scala未來等待修改一個變量
這裏是一個吻例子
def INeedThatListBuffer(): ListBuffer[String] = {
var myCollections: ListBuffer[String] = new ListBuffer[String]()
for (day <- daysInaWeek) {
val myFuture: Future[String] = Future {
// use 'day' do some stuff and get me a result
???
}
myFuture.onComplete {
case Success(result) =>
myCollections += result
}
}
myCollections
}
我的問題是,有時listBuffer是空單,有時,我期待的內容。顯然,在評估未來之前,此方法已完成。
只需添加
- 我不想使用future.await
- 傳遞myCollections未來OBJ不能正常工作,因爲沒有約束力的評估myCollections之前myFuture必須是完整的。
請幫助我。
感謝
'myFuture'是否必須返回'Future'?如果你不想使用'Future.await'或者返回'Future',我沒有看到其他選項。 – adrice727