Future Future

1. Définition

Lorsqu’on veut écrire des opérations asynchrones, on fait appel à un Future. Cela correspond à un bloc d’opérations qui sera disponible à un moment, ou, à défaut, renverra une Exception. Le résultat d’un Future est un Try (vu dans la partie Gestion des erreurs) et peut donc avoir deux valeurs possibles : Erreurs:Exception

  • Success(x), où x est la valeur obtenue calculée dans le corps du Future. Try:Sucess

  • Failure(e), où e est une Exception survenue dans le corps du Future Try:Failure ou si ce dernier ne s’est pas terminé.

Future fait partie du package scala.concurrent, il faut l’importer pour pouvoir l’utiliser. De plus, il faut spécifier un contexte d’exécution lors de la manipulation de Future ; pour cela, il suffit d’importer le contexte global présent dans le même paquet et le déclarer dans une variable implicite.

Prenons comme exemple la méthode tacheLongue qui attend 10 secondes puis donne un nombre aléatoire entre 1 et 10.

import scala.concurrent.Future 
import scala.concurrent.ExecutionContext  Future:ExecutionContext
import scala.util.Random 
 
implicit val executor: ExecutionContext = ExecutionContext.global 
// executor: scala.concurrent.ExecutionContext = 
scala.concurrent.impl.ExecutionContextImpl@d204ff8 
 
def tacheLongue(): Future[Int] = Future...
couv_EPSCALA.png

Découvrez 

le livre :

Aussi inclus dans nos :

Précédent
Gestion des erreurs
Suivant
Implicites