Le module d'événements Node

Le module d'événements de Node.js fournit la classe EventEmitter

Leeventsmodule nous fournit la classe EventEmitter, qui est essentielle pour travailler avec les événements dans Node.

J'ai publié un article complet à ce sujet, donc ici je vais simplement décrire l'API sans autres exemples sur la façon de l'utiliser.

const EventEmitter = require('events')
const door = new EventEmitter()

L'auditeur de l'événement mange sa propre nourriture pour chien et utilise ces événements:

  • newListenerquand un auditeur est ajouté
  • removeListenerquand un auditeur est supprimé

Voici une description détaillée des méthodes les plus utiles:

emitter.addListener()

Alias pouremitter.on().

emitter.emit()

Émet un événement. Il appelle de manière synchrone tous les écouteurs d'événements dans l'ordre dans lequel ils ont été enregistrés.

emitter.eventNames()

Renvoie un tableau de chaînes qui représentent les événements enregistrés sur le EventListener actuel:

door.eventNames()

emitter.getMaxListeners()

Obtenez le nombre maximum d'écouteurs que l'on peut ajouter à un objet EventListener, qui vaut par défaut 10 mais peut être augmenté ou réduit en utilisantsetMaxListeners()

door.getMaxListeners()

emitter.listenerCount()

Obtenez le nombre d'écouteurs de l'événement passé en paramètre:

door.listenerCount('open')

emitter.listeners()

Obtient un tableau d'écouteurs de l'événement passé en paramètre:

door.listeners('open')

emitter.off()

Alias pouremitter.removeListener() added in Node 10

emitter.on()

Ajoute une fonction de rappel appelée lorsqu'un événement est émis.

Usage:

door.on('open', () => {
  console.log('Door was opened')
})

emitter.once()

Ajoute une fonction de rappel qui est appelée lorsqu'un événement est émis pour la première fois après son enregistrement. Ce rappel ne sera appelé qu'une seule fois, plus jamais.

const EventEmitter = require('events')
const ee = new EventEmitter()

ee.once(‘my-event’, () => { //call callback function once })

emitter.prependListener()

Lorsque vous ajoutez un auditeur à l'aide deonouaddListener, il est ajouté en dernier dans la file d'attente des écouteurs et appelé en dernier. UtilisantprependListeneril est ajouté et appelé avant les autres auditeurs.

emitter.prependOnceListener()

Lorsque vous ajoutez un auditeur à l'aide deonce, il est ajouté en dernier dans la file d'attente des écouteurs et appelé en dernier. UtilisantprependOnceListeneril est ajouté et appelé avant les autres auditeurs.

emitter.removeAllListeners()

Supprime tous les écouteurs d'un objet émetteur d'événement écoutant un événement spécifique:

door.removeAllListeners('open')

emitter.removeListener()

Supprimez un auditeur spécifique. Vous pouvez le faire en enregistrant la fonction de rappel dans une variable, une fois ajoutée, afin de pouvoir la référencer plus tard:

const doSomething = () => {}
door.on('open', doSomething)
door.removeListener('open', doSomething)

emitter.setMaxListeners()

Définit le nombre maximum d'écouteurs que l'on peut ajouter à un objet EventListener, qui vaut par défaut 10 mais peut être augmenté ou réduit.

door.setMaxListeners(50)

Téléchargez mon gratuitManuel de Node.js


Plus de didacticiels sur les nœuds: