ループで呼び出されたスカラでリストバッファが構築された場合に、リストバッファを取得する方法について悩まされています。ここで変数を変更するためにスカラーが将来待たされる
は私の問題は時々listBufferは空のリストと私は予想時々コンテンツであるということである
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
}
キス例です。明らかに、このメソッドは、未来が評価される前に完了しています。ただ、私はmyCollectionsが評価される前に、myFutureが完了していなければならないという結合がないので今後のobjが動作しないようmyCollectionsを渡すfuture.await
- を追加する
。
親切にお手伝いします。
おかげ
'myFuture'は' Future'を返さなければなりませんか? 'Future.await'を使うか、' Future'を返すことを望まないなら、他のオプションは表示されません。 – adrice727