我已经对如何在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