JavaScript Generators — Cas pratiques d'utilisation

Tools-in-Action

Room: Neuilly 253

Scheduled at : Thursday 18:30 19:00

Abstract

L'intérêt des fonctions générateurs (generators) réside dans la possibilité d'exécuter une fonction pas à pas, contrairement aux fonctions ordinaires "run-to-completion". Grâce à "yield" et "next", on peut lancer-suspendre-reprendre l'exécution d'une fonction.

Une fonction génératrice (function*) a les capacités d'être "early-complete" (retour anticipé pour annuler l'exécution) ou "early-abort" (suite à une exception).

Une fonction génératrice peut également fonctionner comme un itérateur puissant: "stream" où le calcul est effectué par partie (chunck) à la demande. La technique de "lazy evaluation" a un impact direct sur l'utilisation de la mémoire. Seules les valeurs nécessaires sont générées et calculées.

Une autre caractéristique des générateurs est l'accès unique. Les objets générateurs ne permettent pas l'accès aléatoire (comme c'est possible avec les tableaux) car les valeurs sont générées une par une. Ceci est utile pour créer une file d'attente (FIFO : premier entré, premier sorti/servi).

Enfin, les générateurs sont très utiles lorsque nous voulons écrire à partir de zéro une API comme async/wait ou une API de threading (coroutine, multitâche coopérative, fork, saga).

Héla Ben Khalfallah

Héla Ben Khalfallah

I love coding whatever the language and trying new programming tendencies. I have a special love to JS (ES6+), functional programming, React/Redux/Saga, architecture, clean code & tech-books.

Speaker's bio
Presentation type Tools-in-Action
Track Web, JS, HTML5 & UX
Presentation level Intermediate

Room Neuilly 253