Les événements avec node.js

 

La librairie node.js events permet au développeur de gérer facilement les événements avec node.js. Emettre des événements ou encore en intercepter devient simple comme bonjour.

Prérequis pour les événements avec node.js

– Comprendre node.js (voir l’article Comprendre node.js)
– installer node.js (voir l’article Installer node.js sous Windows);
– savoir ce qu’est un événement (voir l’article javascript : créer des événements personnalisés custom event).

L’objet EventEmitter de node.js

node.js met à disposition du développeur la librairie events qui permet de lancer et de capturer des évènements.

Pour utiliser la librairie, vous avez besoin de d’instancier un objet EventEmitter comme ceci.

let eventEmitter = require('events').EventEmitter;

Cette classe met à disposition plusieurs méthodes pour s’abonner à un événement ou en émettre un.

 

Emettre les événements avec node.js

Il suffit d’invoquer la méthode emit de l’objet eventEmitter.

eventEmitter.emit(event, [arg1], [arg2], [...])

L’exemple suivant émet un événement monEvenement qui associe des données au format json.

eventEmitter.emit("monEvenement", {"donneeA":"1","donneeB":"2"});

S’abonner à un événement node.js

Invoquez la méthode on de l’objet eventEmitter. Lorsque l’événement sera capturé, la méthode lancera la fonction donnée en paramètre. Pour faire plus, c’est la fonction donnée en paramètre qui est abonnée à l’événement.

eventEmitter.on(event, function([arg1], [arg2], [...]) {})

Un exemple d’abonnement qui reprend l’exemple du paragraphe précédent.

eventEmitter.on("monEvenement", function(data) {
  console.log(data.donneeA);
  console.log(data.donneeB);
});

Les autres fonctions associées aux événements node.js

– la méthode EventEmitter once prend les mêmes paramètres que la méthode on. Elle abonne la fonction donnée en paramètre jusqu’au prochain déclenchement de l’événement. A la suite de quoi, l’abonnement cessera;
– la méthode EventEmitter removeListener(event, listener) désabonne une fonction à un événement . Cette fonction est inutilisable si vous spécifiez une fonction anonyme en paramètres de la méthode on;
– la méthode EventEmitter removeAllListeners(event) est identique à la précédente à la différence qu’elle désabonne tout le monde sans distinction;
– la méthode EventEmitter setMaxListeners(n) spécifie le nombre maximum d’abonnements à l’événement. Cette limite n’est pas contraignante puisqu’au delà elle donne un simple avertissement (warning). Spécifier la limite à 0 ne – la méthode EventEmitter listeners(event) renvoie la liste des abonnés à l’événement.

Le prochain article vous montrera comment créer une bibliothèque javascript pour node.js dédiée à l’accès à la base de données mysql qui utilise les événements node.js.

Explore l'univers de la création de jeux vidéo

Saisis ton prénom et ton e-mail pour recevoir ton livre GRATUIT et commence ton voyage ludique dès maintenant.

Bravo, jette un œil à ta boite mail pour télécharger ton guide.