J'ai été frappé par un morceau sur la façon d'obtenir un listbuffer de chaînes dans le cas où le listbuffer se trouve être construit dans un futur scala appelé en boucle.make scala future attente pour modifier une variable
Voici un exemple baiser
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
}
Mon problème est que listBuffer est parfois liste vide et parfois le contenu que je m'y attendais. Clairement, cette méthode est complète avant que le futur ne soit évalué.
Juste pour ajouter
- Je ne veux pas utiliser future.await
- En passant myCollections Future obj ne fonctionne pas comme il n'y a pas obligatoire que myFuture doit être complète avant myCollections est évaluée.
Veuillez m'aider.
Merci
Est-ce que 'myFuture' doit retourner un' Future'? Si vous ne voulez pas utiliser 'Future.await' ou retourner un' Future', je ne vois aucune autre option. – adrice727