Exercice : "Système de Notification de Commande"

Objectif : Créer un script Node.js qui simule un système de notification pour un service de commande en ligne. L'exercice mettra en évidence la création d'événements personnalisés, l'écoute d'événements et la réponse à ces événements.

Partie 1: Création de l'EventEmitter

  1. Définir un EventEmitter :
    • Créez une instance de EventEmitter qui représentera notre système de notification.

Partie 2: Écoute et Émission d'Événements

  1. Écoute des Événements :

    • Ajoutez des écouteurs pour les événements orderPlaced et orderShipped.
    • Chaque écouteur doit afficher un message dans la console lorsqu'il reçoit l'événement correspondant.
  2. Émission d'Événements :

    • Simulez la passation d'une commande en émettant l'événement orderPlaced.
    • Simulez l'expédition d'une commande en émettant l'événement orderShipped.

Partie 3: Gestion des Événements avec Arguments

  1. Passage d'Arguments aux Événements :
    • Modifiez les écouteurs pour qu'ils acceptent des données de commande, telles que l'ID de la commande et les détails du client.
    • Lors de l'émission des événements, passez un objet contenant ces informations.

Partie 4: Patterns Courants

  1. Nettoyage des Écouteurs :
    • Ajoutez un événement orderCompleted qui, lorsqu'il est émis, supprime les écouteurs pour une commande spécifique pour éviter les fuites de mémoire.

Exemple de Code pour la Partie 1 et 2

const EventEmitter = require('events');

// Partie 1: Création de l'EventEmitter
class OrderSystem extends EventEmitter {
  constructor() {
    super();
  }
}

// Partie 2: Écoute et Émission d'Événements
const orderSystem = new OrderSystem();

// Écoute des événements
orderSystem.on('orderPlaced', () => {
  console.log('Une commande a été passée.');
});

orderSystem.on('orderShipped', () => {
  console.log('Une commande a été expédiée.');
});

// Émission d'événements
orderSystem.emit('orderPlaced');
orderSystem.emit('orderShipped');

 

Instructions pour l'étudiant :

  • Complétez l'implémentation de OrderSystem pour gérer les événements avec des arguments.
  • Assurez-vous que les écouteurs affichent les détails de la commande lorsqu'ils reçoivent un événement.
  • Testez votre code en émettant des événements avec des données de commande différentes.
  • Implémentez le nettoyage des écouteurs pour l'événement orderCompleted.

Cet exercice aidera les étudiants à comprendre comment les événements fonctionnent dans Node.js et comment ils peuvent être utilisés pour créer des systèmes réactifs et modulaires.

 
Modifié le: vendredi 3 novembre 2023, 09:36