SlideShare une entreprise Scribd logo
1  sur  16
Télécharger pour lire hors ligne
@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 !

Contenu connexe

En vedette

Anniversairekiki2
Anniversairekiki2Anniversairekiki2
Anniversairekiki2guest0c71ce
 
Guerra De La Mercadotecnia
Guerra De La MercadotecniaGuerra De La Mercadotecnia
Guerra De La Mercadotecniatocha2
 
Cats, cats & more cats
Cats, cats & more catsCats, cats & more cats
Cats, cats & more catstrialbyfire
 
La nouvelle sphere_publique
La nouvelle sphere_publiqueLa nouvelle sphere_publique
La nouvelle sphere_publiqueAntonio Medina
 
7 règles d’or pour réussir la page facebook de sa startup
7 règles d’or pour réussir la page facebook de sa startup7 règles d’or pour réussir la page facebook de sa startup
7 règles d’or pour réussir la page facebook de sa startupQuickBooks France
 
Miroir préscolaire 2015
Miroir préscolaire 2015Miroir préscolaire 2015
Miroir préscolaire 2015MOUHAMAD SOW
 
Pass-Connect
Pass-ConnectPass-Connect
Pass-Connectmcru
 
Axe 5 développement de affaires
Axe 5   développement de affairesAxe 5   développement de affaires
Axe 5 développement de affairesFrenchsouth.digital
 
Orange County Diapos
Orange County DiaposOrange County Diapos
Orange County Diapossmargeridon
 
no me llamó
no me llamóno me llamó
no me llamógloria
 
Presentación Condición Física
Presentación Condición FísicaPresentación Condición Física
Presentación Condición Físicamarcosgarate
 
Informe para Segundo debate del proyecto de Código Orgánico Monetario y Finan...
Informe para Segundo debate del proyecto de Código Orgánico Monetario y Finan...Informe para Segundo debate del proyecto de Código Orgánico Monetario y Finan...
Informe para Segundo debate del proyecto de Código Orgánico Monetario y Finan...Asamblea Nacional
 
Solo palabras
Solo palabrasSolo palabras
Solo palabrasgloria
 
Diapositivas Nivel Internet
Diapositivas Nivel InternetDiapositivas Nivel Internet
Diapositivas Nivel Internetlourdesb1
 

En vedette (19)

Les oligopoles linguistiques
Les oligopoles linguistiquesLes oligopoles linguistiques
Les oligopoles linguistiques
 
Anniversairekiki2
Anniversairekiki2Anniversairekiki2
Anniversairekiki2
 
Guerra De La Mercadotecnia
Guerra De La MercadotecniaGuerra De La Mercadotecnia
Guerra De La Mercadotecnia
 
Cats, cats & more cats
Cats, cats & more catsCats, cats & more cats
Cats, cats & more cats
 
La nouvelle sphere_publique
La nouvelle sphere_publiqueLa nouvelle sphere_publique
La nouvelle sphere_publique
 
7 règles d’or pour réussir la page facebook de sa startup
7 règles d’or pour réussir la page facebook de sa startup7 règles d’or pour réussir la page facebook de sa startup
7 règles d’or pour réussir la page facebook de sa startup
 
Calentamiento2
Calentamiento2Calentamiento2
Calentamiento2
 
Miroir préscolaire 2015
Miroir préscolaire 2015Miroir préscolaire 2015
Miroir préscolaire 2015
 
Pass-Connect
Pass-ConnectPass-Connect
Pass-Connect
 
nouvel an
nouvel annouvel an
nouvel an
 
Axe 5 développement de affaires
Axe 5   développement de affairesAxe 5   développement de affaires
Axe 5 développement de affaires
 
Que Crisis!
Que Crisis!Que Crisis!
Que Crisis!
 
Orange County Diapos
Orange County DiaposOrange County Diapos
Orange County Diapos
 
Comprasnet1
Comprasnet1Comprasnet1
Comprasnet1
 
no me llamó
no me llamóno me llamó
no me llamó
 
Presentación Condición Física
Presentación Condición FísicaPresentación Condición Física
Presentación Condición Física
 
Informe para Segundo debate del proyecto de Código Orgánico Monetario y Finan...
Informe para Segundo debate del proyecto de Código Orgánico Monetario y Finan...Informe para Segundo debate del proyecto de Código Orgánico Monetario y Finan...
Informe para Segundo debate del proyecto de Código Orgánico Monetario y Finan...
 
Solo palabras
Solo palabrasSolo palabras
Solo palabras
 
Diapositivas Nivel Internet
Diapositivas Nivel InternetDiapositivas Nivel Internet
Diapositivas Nivel Internet
 

Plus de Publicis Sapient Engineering

XebiCon'18 - L'algorithme de reconnaissance de formes par le cerveau humain
XebiCon'18 - L'algorithme de reconnaissance de formes par le cerveau humainXebiCon'18 - L'algorithme de reconnaissance de formes par le cerveau humain
XebiCon'18 - L'algorithme de reconnaissance de formes par le cerveau humainPublicis Sapient Engineering
 
Xebicon'18 - Spark in jail : conteneurisez vos traitements data sans serveur
Xebicon'18 - Spark in jail : conteneurisez vos traitements data sans serveurXebicon'18 - Spark in jail : conteneurisez vos traitements data sans serveur
Xebicon'18 - Spark in jail : conteneurisez vos traitements data sans serveurPublicis Sapient Engineering
 
XebiCon'18 - La Web App d'aujourd'hui et de demain : état de l'art et bleedin...
XebiCon'18 - La Web App d'aujourd'hui et de demain : état de l'art et bleedin...XebiCon'18 - La Web App d'aujourd'hui et de demain : état de l'art et bleedin...
XebiCon'18 - La Web App d'aujourd'hui et de demain : état de l'art et bleedin...Publicis Sapient Engineering
 
XebiCon'18 - Des notebook pour le monitoring avec Zeppelin
XebiCon'18 - Des notebook pour le monitoring avec Zeppelin XebiCon'18 - Des notebook pour le monitoring avec Zeppelin
XebiCon'18 - Des notebook pour le monitoring avec Zeppelin Publicis Sapient Engineering
 
XebiCon'18 - Event Sourcing et RGPD, incompatibles ?
XebiCon'18 - Event Sourcing et RGPD, incompatibles ?XebiCon'18 - Event Sourcing et RGPD, incompatibles ?
XebiCon'18 - Event Sourcing et RGPD, incompatibles ?Publicis Sapient Engineering
 
XebiCon'18 - Deno, le nouveau NodeJS qui inverse la tendance ?
XebiCon'18 - Deno, le nouveau NodeJS qui inverse la tendance ?XebiCon'18 - Deno, le nouveau NodeJS qui inverse la tendance ?
XebiCon'18 - Deno, le nouveau NodeJS qui inverse la tendance ?Publicis Sapient Engineering
 
XebiCon'18 - Boostez vos modèles avec du Deep Learning distribué
XebiCon'18 - Boostez vos modèles avec du Deep Learning distribuéXebiCon'18 - Boostez vos modèles avec du Deep Learning distribué
XebiCon'18 - Boostez vos modèles avec du Deep Learning distribuéPublicis Sapient Engineering
 
XebiCon'18 - Comment j'ai développé un jeu vidéo avec des outils de développe...
XebiCon'18 - Comment j'ai développé un jeu vidéo avec des outils de développe...XebiCon'18 - Comment j'ai développé un jeu vidéo avec des outils de développe...
XebiCon'18 - Comment j'ai développé un jeu vidéo avec des outils de développe...Publicis Sapient Engineering
 
XebiCon'18 - Les utilisateurs finaux, les oubliés de nos produits !
XebiCon'18 - Les utilisateurs finaux, les oubliés de nos produits !XebiCon'18 - Les utilisateurs finaux, les oubliés de nos produits !
XebiCon'18 - Les utilisateurs finaux, les oubliés de nos produits !Publicis Sapient Engineering
 
XebiCon'18 - Comment fausser l'interprétation de vos résultats avec des dataviz
XebiCon'18 - Comment fausser l'interprétation de vos résultats avec des datavizXebiCon'18 - Comment fausser l'interprétation de vos résultats avec des dataviz
XebiCon'18 - Comment fausser l'interprétation de vos résultats avec des datavizPublicis Sapient Engineering
 
XebiCon'18 - Architecturer son application mobile pour la durabilité
XebiCon'18 - Architecturer son application mobile pour la durabilitéXebiCon'18 - Architecturer son application mobile pour la durabilité
XebiCon'18 - Architecturer son application mobile pour la durabilitéPublicis Sapient Engineering
 
XebiCon'18 - Sécuriser son API avec OpenID Connect
XebiCon'18 - Sécuriser son API avec OpenID ConnectXebiCon'18 - Sécuriser son API avec OpenID Connect
XebiCon'18 - Sécuriser son API avec OpenID ConnectPublicis Sapient Engineering
 
XebiCon'18 - Structuration du Temps et Dynamique de Groupes, Théorie organisa...
XebiCon'18 - Structuration du Temps et Dynamique de Groupes, Théorie organisa...XebiCon'18 - Structuration du Temps et Dynamique de Groupes, Théorie organisa...
XebiCon'18 - Structuration du Temps et Dynamique de Groupes, Théorie organisa...Publicis Sapient Engineering
 
XebiCon'18 - La sécurité, douce illusion même en 2018
XebiCon'18 - La sécurité, douce illusion même en 2018XebiCon'18 - La sécurité, douce illusion même en 2018
XebiCon'18 - La sécurité, douce illusion même en 2018Publicis Sapient Engineering
 
XebiCon'18 - Utiliser Hyperledger Fabric pour la création d'une blockchain pr...
XebiCon'18 - Utiliser Hyperledger Fabric pour la création d'une blockchain pr...XebiCon'18 - Utiliser Hyperledger Fabric pour la création d'une blockchain pr...
XebiCon'18 - Utiliser Hyperledger Fabric pour la création d'une blockchain pr...Publicis Sapient Engineering
 
XebiCon'18 - Ce que l'histoire du métro Parisien m'a enseigné sur la création...
XebiCon'18 - Ce que l'histoire du métro Parisien m'a enseigné sur la création...XebiCon'18 - Ce que l'histoire du métro Parisien m'a enseigné sur la création...
XebiCon'18 - Ce que l'histoire du métro Parisien m'a enseigné sur la création...Publicis Sapient Engineering
 

Plus de Publicis Sapient Engineering (20)

XebiCon'18 - L'algorithme de reconnaissance de formes par le cerveau humain
XebiCon'18 - L'algorithme de reconnaissance de formes par le cerveau humainXebiCon'18 - L'algorithme de reconnaissance de formes par le cerveau humain
XebiCon'18 - L'algorithme de reconnaissance de formes par le cerveau humain
 
Xebicon'18 - IoT: From Edge to Cloud
Xebicon'18 - IoT: From Edge to CloudXebicon'18 - IoT: From Edge to Cloud
Xebicon'18 - IoT: From Edge to Cloud
 
Xebicon'18 - Spark in jail : conteneurisez vos traitements data sans serveur
Xebicon'18 - Spark in jail : conteneurisez vos traitements data sans serveurXebicon'18 - Spark in jail : conteneurisez vos traitements data sans serveur
Xebicon'18 - Spark in jail : conteneurisez vos traitements data sans serveur
 
XebiCon'18 - Modern Infrastructure
XebiCon'18 - Modern InfrastructureXebiCon'18 - Modern Infrastructure
XebiCon'18 - Modern Infrastructure
 
XebiCon'18 - La Web App d'aujourd'hui et de demain : état de l'art et bleedin...
XebiCon'18 - La Web App d'aujourd'hui et de demain : état de l'art et bleedin...XebiCon'18 - La Web App d'aujourd'hui et de demain : état de l'art et bleedin...
XebiCon'18 - La Web App d'aujourd'hui et de demain : état de l'art et bleedin...
 
XebiCon'18 - Des notebook pour le monitoring avec Zeppelin
XebiCon'18 - Des notebook pour le monitoring avec Zeppelin XebiCon'18 - Des notebook pour le monitoring avec Zeppelin
XebiCon'18 - Des notebook pour le monitoring avec Zeppelin
 
XebiCon'18 - Event Sourcing et RGPD, incompatibles ?
XebiCon'18 - Event Sourcing et RGPD, incompatibles ?XebiCon'18 - Event Sourcing et RGPD, incompatibles ?
XebiCon'18 - Event Sourcing et RGPD, incompatibles ?
 
XebiCon'18 - Deno, le nouveau NodeJS qui inverse la tendance ?
XebiCon'18 - Deno, le nouveau NodeJS qui inverse la tendance ?XebiCon'18 - Deno, le nouveau NodeJS qui inverse la tendance ?
XebiCon'18 - Deno, le nouveau NodeJS qui inverse la tendance ?
 
XebiCon'18 - Boostez vos modèles avec du Deep Learning distribué
XebiCon'18 - Boostez vos modèles avec du Deep Learning distribuéXebiCon'18 - Boostez vos modèles avec du Deep Learning distribué
XebiCon'18 - Boostez vos modèles avec du Deep Learning distribué
 
XebiCon'18 - Comment j'ai développé un jeu vidéo avec des outils de développe...
XebiCon'18 - Comment j'ai développé un jeu vidéo avec des outils de développe...XebiCon'18 - Comment j'ai développé un jeu vidéo avec des outils de développe...
XebiCon'18 - Comment j'ai développé un jeu vidéo avec des outils de développe...
 
XebiCon'18 - Les utilisateurs finaux, les oubliés de nos produits !
XebiCon'18 - Les utilisateurs finaux, les oubliés de nos produits !XebiCon'18 - Les utilisateurs finaux, les oubliés de nos produits !
XebiCon'18 - Les utilisateurs finaux, les oubliés de nos produits !
 
XebiCon'18 - Comment fausser l'interprétation de vos résultats avec des dataviz
XebiCon'18 - Comment fausser l'interprétation de vos résultats avec des datavizXebiCon'18 - Comment fausser l'interprétation de vos résultats avec des dataviz
XebiCon'18 - Comment fausser l'interprétation de vos résultats avec des dataviz
 
XebiCon'18 - Le développeur dans la Pop Culture
XebiCon'18 - Le développeur dans la Pop Culture XebiCon'18 - Le développeur dans la Pop Culture
XebiCon'18 - Le développeur dans la Pop Culture
 
XebiCon'18 - Architecturer son application mobile pour la durabilité
XebiCon'18 - Architecturer son application mobile pour la durabilitéXebiCon'18 - Architecturer son application mobile pour la durabilité
XebiCon'18 - Architecturer son application mobile pour la durabilité
 
XebiCon'18 - Sécuriser son API avec OpenID Connect
XebiCon'18 - Sécuriser son API avec OpenID ConnectXebiCon'18 - Sécuriser son API avec OpenID Connect
XebiCon'18 - Sécuriser son API avec OpenID Connect
 
XebiCon'18 - Structuration du Temps et Dynamique de Groupes, Théorie organisa...
XebiCon'18 - Structuration du Temps et Dynamique de Groupes, Théorie organisa...XebiCon'18 - Structuration du Temps et Dynamique de Groupes, Théorie organisa...
XebiCon'18 - Structuration du Temps et Dynamique de Groupes, Théorie organisa...
 
XebiCon'18 - Spark NLP, un an après
XebiCon'18 - Spark NLP, un an aprèsXebiCon'18 - Spark NLP, un an après
XebiCon'18 - Spark NLP, un an après
 
XebiCon'18 - La sécurité, douce illusion même en 2018
XebiCon'18 - La sécurité, douce illusion même en 2018XebiCon'18 - La sécurité, douce illusion même en 2018
XebiCon'18 - La sécurité, douce illusion même en 2018
 
XebiCon'18 - Utiliser Hyperledger Fabric pour la création d'une blockchain pr...
XebiCon'18 - Utiliser Hyperledger Fabric pour la création d'une blockchain pr...XebiCon'18 - Utiliser Hyperledger Fabric pour la création d'une blockchain pr...
XebiCon'18 - Utiliser Hyperledger Fabric pour la création d'une blockchain pr...
 
XebiCon'18 - Ce que l'histoire du métro Parisien m'a enseigné sur la création...
XebiCon'18 - Ce que l'histoire du métro Parisien m'a enseigné sur la création...XebiCon'18 - Ce que l'histoire du métro Parisien m'a enseigné sur la création...
XebiCon'18 - Ce que l'histoire du métro Parisien m'a enseigné sur la création...
 

Devoxx france 2014 - Promesses et Yield