Partie 1: Correction de la Création de l'EventEmitter

Assurez-vous que l'instance de EventEmitter est correctement créée :

const EventEmitter = require('events');

class OrderSystem extends EventEmitter {
  constructor() {
    super();
  }
}

 

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

Vérifiez que les écouteurs sont bien ajoutés et que les événements sont émis correctement :

const orderSystem = new OrderSystem();

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

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

orderSystem.emit('orderPlaced');
orderSystem.emit('orderShipped');

 

Partie 3: Correction de la Gestion des Événements avec Arguments

Modifiez les écouteurs pour accepter des arguments et émettez des événements avec des données :

orderSystem.on('orderPlaced', (order) => {
  console.log(`Commande ${order.id} passée par ${order.customer}.`);
});

orderSystem.on('orderShipped', (order) => {
  console.log(`Commande ${order.id} expédiée à ${order.address}.`);
});

orderSystem.emit('orderPlaced', { id: '1234', customer: 'John Doe' });
orderSystem.emit('orderShipped', { id: '1234', address: '123 Main St' });

 

Partie 4: Correction du Nettoyage des Écouteurs

Implémentez le nettoyage des écouteurs pour éviter les fuites de mémoire :

orderSystem.on('orderCompleted', (orderId) => {
  console.log(`Nettoyage des écouteurs pour la commande ${orderId}.`);
  orderSystem.removeAllListeners(orderId);
});

// Simuler la complétion d'une commande
orderSystem.emit('orderCompleted', '1234');

 

Vérification Finale

  • Exécutez le script avec Node.js pour vous assurer qu'il n'y a pas d'erreurs de syntaxe ou d'exécution.
  • Testez avec différentes commandes pour vous assurer que les écouteurs reçoivent et affichent correctement les données de commande.
  • Vérifiez que l'événement orderCompleted supprime bien les écouteurs associés à une commande spécifique.
Modifié le: vendredi 3 novembre 2023, 09:40