je le code suivant dans un acteurAkka: Envoyer un futur message à un acteur
def receive = {
case All() => {
val collection: BSONCollection = db("ping")
val future:Future[List[Ping]] = collection.find(BSONDocument()).cursor[Ping].toList()
val zender = sender
future onComplete {
case Success(list) => zender ! list
case Failure(throwable) => zender ! List()
}
}
}
Je n'aime pas comment je dois utiliser la fonction onComplete pour envoyer le résultat à l'acteur de l'expéditeur. Je voudrais savoir s'il est possible de le convertir en quelque chose comme ceci:
def receive = {
case All() => {
val collection: BSONCollection = db("ping")
val future:Future[List[Ping]] = collection.find(BSONDocument()).cursor[Ping].toList()
"sender ! future" // one option
"future.map(list => sender ! list)" //Another option. I know it's not map, but maybe another function
}
}
Je pense que cela coule mieux avec l'enchaînement avenir.
votre première approche ne fonctionne-t-elle pas? –
@Alex Oui, mais le tuyau est beaucoup plus élégant. – Luciano
Très bien. Mais vous dites ** Je n'aime pas comment je dois utiliser la fonction onComplete pour renvoyer le résultat à l'acteur de l'expéditeur. ** et votre code fait exactement cela - vous renvoyez le résultat à l'acteur de l'expéditeur . –