@flornt#PromessesYield
Promesses et Yield
Les Future<?> de JavaScript
!
Florent Le Gall
!
@flornt
!
!
@flornt#PromessesYield
L’asynchronisme
get /book/bookId
Afficher la couverture
Afficher le contenu
get /url/to/content
Avec la gestion des erreurs !
Et des resources !
@flornt#PromessesYield
Avec des callbacks
@flornt#PromessesYield
Avec des promesses
@flornt#PromessesYield
Avec les générateurs
@flornt#PromessesYield
Function *
!
•C’est un générateur (ECMAScript 6)
!
•Il permet de renvoyer un résultat partiel à la fonction
appelante…
•… et d’être rappelé par une autre valeur…
•… mais c’est toujours asynchrone !
@flornt#PromessesYield
Yield + Promesses
!
!
On cède une promesse et on est rappelé avec le résultat
@flornt#PromessesYield
On peut aussi faire l’inverse
Convertir un générateur en promesse
@flornt#PromessesYield
Oui, mais …
… on ne peut utiliser yield que depuis un générateur
Pour déléguer à un autre générateur
@flornt#PromessesYield
Où l’utiliser ?
!
• instable (0.11X)
!
• 27 +
!
• 30 + (en activant « Experimental JavaScript
Features »)
@flornt#PromessesYield
Quelques librairies JavaScript
!
!
•TaskJS: http://taskjs.org
!
•Q: https://github.com/kriskowal/q
@flornt#YourSessionHashtag
Que choisir ?
On expose un service
asynchrone
On utilise un service
asynchrone
Il vaut mieux renvoyer une
promesse
On peut utiliser un
générateur pour consommer
la promesse
@YourTwitterHandle#DVXFR14{session hashtag} @flornt#PromessesYield
Pour
résum
er
@flornt#PromessesYield
Yield c’est facile !
•Permet de simplifier la gestion des traitements
asynchrones
!
•Conserve l’asynchronisme de JavaScript
!
•Si vous faites une API JS : renvoyez des promesses !
!
•Si vous consommez une API JS : utilisez yield !
@YourTwitterHandle#DVXFR14{session hashtag} @flornt#PromessesYield
Q
&
A
@flornt#PromessesYield
!
Merci !

Devoxx france 2014 - Promesses et Yield