devoxx france 2014 - promesses et yield
TRANSCRIPT
@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ésu
mer
@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 !