Dernière mise à jour
Dernière mise à jour
Supposons deux fonctions asynchrones :
et
Avec des "callbacks" classiques, nous sommes amenés à utiliser ces fonctions de la façon suivante :
Ce cas est relativement simple mais manque déjà en lisibilité et présente déjà quelques erreurs.
A la ligne 12, le paramètre d'erreur a été nommé err
mais à la ligne 14, c'est le paramètre error
du closure parent qui est utilisé.
Plus les "callbacks" se cascadent plus ce type d'erreur a de chance de se produire.
Le problème avec l'approche Error-First Callback utilisée dans notre exemple en suivant les conventions NodeJS, est que la même "callback" sert à deux finalités : le succès et l'échec ; avec cette approche, il arrive souvent d'omettre la gestion d'erreur et donc d'appeler l'étape suivante malgré tout.
C'est le cas de notre exemple où il nous manque un return
après la ligne 15.
catch
Il est nécessaire d'appeler de capturer et gérer les erreurs de chaque appel.
Il est impossible dans l'état d'annuler l'enchainement des traitements une fois lancé.
Bien sûr, il existe des librairies "cache-misère" telles que mais elles sont progressivement abandonnées pour passer aux approches abordées dans les chapitres suivants.