Maison > interface Web > js tutoriel > le corps du texte

Événements : Node.js

Susan Sarandon
Libérer: 2024-10-08 06:23:30
original
839 Les gens l'ont consulté

Events: Node.js

Guide simple des événements dans Node.js

Node.js est construit sur une architecture basée sur les événements, qui est essentielle à sa capacité à gérer efficacement les opérations asynchrones. Dans ce guide, nous explorerons le fonctionnement des événements dans Node.js, la classe EventEmitter et des exemples pratiques d'utilisation des événements dans vos applications.

Comprendre les événements dans Node.js

Dans Node.js, les événements sont un moyen de gérer les opérations asynchrones. Les événements vous permettent d'exécuter du code en réponse à certaines actions ou occurrences dans votre application. Ceci est particulièrement utile dans les opérations d'E/S, telles que la lecture de fichiers, l'envoi de requêtes réseau ou la gestion des entrées utilisateur.

La classe EventEmitter

Au cœur du système d'événements de Node.js se trouve la classe EventEmitter. Cette classe fait partie du module d'événements et fournit des méthodes pour enregistrer, émettre et gérer des événements.

Importer le module d'événements

Pour utiliser EventEmitter, vous devez d'abord importer le module événements :


const EventEmitter = require('events');


Copier après la connexion

L'API EventEmitter

  • on(event, listening) : ajoute une fonction d'écoute à la fin du tableau des écouteurs pour l'événement spécifié.
  • emit(event, [...args]) : Émet un événement, appelant tous les auditeurs enregistrés pour cet événement avec les arguments donnés.
  • removeListener(event, listening) : supprime un écouteur du tableau d'écouteurs pour l'événement spécifié.
  • once(event, listening) : ajoute une fonction d'écoute unique pour l'événement spécifié. Cet écouteur n'est invoqué que la prochaine fois que l'événement est déclenché, après quoi il est supprimé.

Création d'émetteurs d'événements personnalisés

Vous pouvez créer vos propres classes qui étendent la classe EventEmitter. Voici comment :

Exemple : création d'un émetteur d'événements personnalisé


const EventEmitter = require('events');

class MyEmitter extends EventEmitter {}

const myEmitter = new MyEmitter();


Copier après la connexion

À l'écoute des événements

Vous pouvez écouter les événements en utilisant la méthode on. Voici un exemple :

Exemple : écoute d'un événement


myEmitter.on('event', () => {
    console.log('An event occurred!');
});


Copier après la connexion

Événements émetteurs

Pour déclencher un événement, utilisez la méthode submit. Vous pouvez également transmettre des arguments aux auditeurs :

Exemple : émission d'un événement


myEmitter.emit('event'); // Output: An event occurred!


Copier après la connexion

Vous pouvez également transmettre des données aux auditeurs :


myEmitter.on('greet', (name) => {
    console.log(`Hello, ${name}!`);
});

myEmitter.emit('greet', 'Alice'); // Output: Hello, Alice!


Copier après la connexion

Suppression des écouteurs d'événements

Vous pouvez supprimer des écouteurs spécifiques à l'aide de la méthode removeListener :

Exemple : suppression d'un écouteur d'événement


const sayHello = (name) => {
    console.log(`Hello, ${name}!`);
};

myEmitter.on('greet', sayHello);

// Remove the listener
myEmitter.removeListener('greet', sayHello);

// This will not trigger any output
myEmitter.emit('greet', 'Bob'); // No output


Copier après la connexion

Utilisation d'EventEmitter avec une classe personnalisée

Quand utiliser

Créez une classe personnalisée qui étend EventEmitter lorsque vous souhaitez ajouter des méthodes personnalisées ou gérer un état supplémentaire lié à vos événements.

Exemple : création d'une classe EventEmitter personnalisée


const EventEmitter = require('events');

// Custom class extending EventEmitter
class MyEmitter extends EventEmitter {
    logEvent(eventName) {
        console.log(`Event "${eventName}" has been triggered`);
    }
}

const myEmitter = new MyEmitter();

// Adding a listener
myEmitter.on('event', () => {
    myEmitter.logEvent('event');
});

// Emitting an event
myEmitter.emit('event'); // Output: Event "event" has been triggered


Copier après la connexion

Utiliser directement EventEmitter

Quand utiliser

Utilisez EventEmitter directement pour une gestion simple des événements sans avoir besoin de fonctionnalités ou de structure supplémentaires.

Exemple : utilisation directe d'EventEmitter


const EventEmitter = require('events');

// Create an instance of EventEmitter directly
const myEmitter = new EventEmitter();

// Adding a listener
myEmitter.on('event', () => {
    console.log('An event occurred!');
});

// Emitting an event
myEmitter.emit('event'); // Output: An event occurred!


Copier après la connexion

Ce guide vous donne les bases de l'utilisation d'EventEmitter avec et sans extension de la classe, ainsi que des exemples et des cas d'utilisation pour chaque approche.

La classe EventEmitter dans Node.js fournit un mécanisme puissant pour gérer les événements asynchrones. En utilisant des événements, vous pouvez créer des applications flexibles et modulaires capables de répondre à diverses actions, rendant ainsi votre code plus propre et plus maintenable. Que vous construisiez une application simple ou un serveur complexe, la compréhension des événements est cruciale pour une programmation Node.js efficace.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!