Asynchronismes en JavaScript - Devoxx 2015
-
Upload
xebia-france -
Category
Software
-
view
141 -
download
0
Transcript of Asynchronismes en JavaScript - Devoxx 2015
![Page 1: Asynchronismes en JavaScript - Devoxx 2015](https://reader034.fdocument.pub/reader034/viewer/2022051400/55a58c3d1a28ab30528b45a9/html5/thumbnails/1.jpg)
@flornt#AsynchronismesJS
Asynchronismes en JavaScript
Florent Le Gall
@flornt
Xebia
![Page 2: Asynchronismes en JavaScript - Devoxx 2015](https://reader034.fdocument.pub/reader034/viewer/2022051400/55a58c3d1a28ab30528b45a9/html5/thumbnails/2.jpg)
@flornt#AsynchronismesJS
L’asynchronisme en JS
• Les callbacks : À éviter!
• “Pyramid of doom”
• Gestion des erreurs difficile
![Page 3: Asynchronismes en JavaScript - Devoxx 2015](https://reader034.fdocument.pub/reader034/viewer/2022051400/55a58c3d1a28ab30528b45a9/html5/thumbnails/3.jpg)
@flornt#AsynchronismesJS
L’asynchronisme en JS
• Les promesses:
• Permet de chaîner les appels en renvoyant une autre promesse
• Et de gérer les erreurs simplement
• Pur JS : Disponible partout
![Page 4: Asynchronismes en JavaScript - Devoxx 2015](https://reader034.fdocument.pub/reader034/viewer/2022051400/55a58c3d1a28ab30528b45a9/html5/thumbnails/4.jpg)
@flornt#AsynchronismesJS
L’asynchronisme en JS
• Yield
• Détourne la sémantique des générateurs pour gérer l’asynchronisme
• ECMAScript 6 Only
• Pas de traitement en parallèle !
![Page 5: Asynchronismes en JavaScript - Devoxx 2015](https://reader034.fdocument.pub/reader034/viewer/2022051400/55a58c3d1a28ab30528b45a9/html5/thumbnails/5.jpg)
@flornt#AsynchronismesJS
Gérer les promesses
• Q.JS
• Implémente la spécification Promises A+
• Très populaire en 2014
• Angular introduit une version simplifiée $q
![Page 6: Asynchronismes en JavaScript - Devoxx 2015](https://reader034.fdocument.pub/reader034/viewer/2022051400/55a58c3d1a28ab30528b45a9/html5/thumbnails/6.jpg)
@flornt#AsynchronismesJS
Gérer les promesses
• BlueBird
• Implémente la spécification Promises A+
• Propose une API similaire à celles des promesses ECMA 6
• De meilleurs performances par rapport à Q
• Innovations liées à la programmation fonctionnelle
![Page 7: Asynchronismes en JavaScript - Devoxx 2015](https://reader034.fdocument.pub/reader034/viewer/2022051400/55a58c3d1a28ab30528b45a9/html5/thumbnails/7.jpg)
@YourTwitterHandle@YourTwitterHandle@flornt#AsynchronismesJS
Live coding !
https://github.com/flegall/asynchronismes
![Page 8: Asynchronismes en JavaScript - Devoxx 2015](https://reader034.fdocument.pub/reader034/viewer/2022051400/55a58c3d1a28ab30528b45a9/html5/thumbnails/8.jpg)
@YourTwitterHandle@YourTwitterHandle@flornt#AsynchronismesJS
Conclusion
![Page 9: Asynchronismes en JavaScript - Devoxx 2015](https://reader034.fdocument.pub/reader034/viewer/2022051400/55a58c3d1a28ab30528b45a9/html5/thumbnails/9.jpg)
@flornt#AsynchronismesJS
Conclusion
• BlueBird est la librairie de gestion de promesses la plus aboutie à ce jour
• Les apports fonctionnels se marient plutôt bien avec le JavaScript
• Le paramètre concurrency n’est pas un pool de threads
![Page 10: Asynchronismes en JavaScript - Devoxx 2015](https://reader034.fdocument.pub/reader034/viewer/2022051400/55a58c3d1a28ab30528b45a9/html5/thumbnails/10.jpg)
@YourTwitterHandle@YourTwitterHandle@flornt#AsynchronismesJS
Q & R