Node.js est un environnement d'exécution JavaScript pour les applications réseau évolutives qui utilise un modèle d'E/S non bloquant et piloté par les événements. Node émetteur (Emitter) est un module de communication de données interactif fourni par Node.js. Il peut implémenter le mode observateur entre les objets, afin qu'un objet puisse être surveillé par plusieurs utilisateurs en même temps, et automatiquement lorsque l'état de l'objet change. tous les utilisateurs. Dans cet article, nous présenterons comment utiliser l'émetteur de Node.js pour implémenter la surveillance des objets et le déclenchement d'événements.
Tout d’abord, nous devons comprendre quelques concepts de base des lanceurs. Emitter est un module intégré de Node.js qui implémente un mécanisme de gestion d'événements. Il s'agit d'un déclencheur d'événements qui fournit les fonctions d'enregistrement d'événements, d'émission d'événements et de suppression des écouteurs d'événements. Dans Node.js, la plupart des modules héritent de la classe EventEmitter, ils disposent donc tous d'une instance d'émetteur qu'ils peuvent utiliser pour implémenter la gestion des événements.
Avant d'utiliser le lanceur, nous devons comprendre quelques connaissances de base. Tout d'abord, pour créer une instance d'émetteur, nous devons introduire le module events et créer un objet EventEmitter. Le code est le suivant :
const EventEmitter = require('events'); const emitter = new EventEmitter();
Ici, nous utilisons la fonction require
pour introduire le module intégré. d'événements Node.js et créé un objet EventEmitter
emitter
pour l'émission et la surveillance d'événements. require
函数引入了Node.js的内置模块events
,并创建了一个EventEmitter对象emitter
,用于事件的发射和监听。
然后,我们需要实现事件的注册、处理和移除。对于事件的注册和移除,我们可以使用on
和off
方法,而对于事件的处理,我们可以使用emit
方法。下面是一些基本的例子:
function callback() { console.log('event is emitted'); } // 注册事件监听器,监听event事件 emitter.on('event', callback); // 触发event事件,会自动调用callback函数 emitter.emit('event'); // 移除event事件监听器,不再监听event事件 emitter.off('event', callback);
在上面的例子中,我们使用了on
方法注册了一个事件监听器。当事件'event'
被发射时,会自动调用callback
函数。然后,我们使用emit
方法发射了事件'event'
,从而触发了callback
函数。最后,我们使用off
方法移除了callback
函数对事件'event'
的监听。
除了on
、off
和emit
方法外,我们还可以使用其他一些方法来操作发射器。其中,once
方法和on
方法差不多,不同之处在于once
方法会在事件被发射一次后自动删除事件监听器。此外,prependListener
方法可以将事件监听器插入到事件监听器列表的最前面,而prependOnceListener
方法则是将事件监听器提供到监听器列表中的最前面,并且只会调用一次。
// 在所有事件监听器之前添加事件监听器 emitter.prependListener('event', callback); // 在所有事件监听器之前添加事件监听器,只会调用一次 emitter.prependOnceListener('event', callback);
当然,我们还可以使用eventNames
on
et off
, et pour le traitement des événements, nous pouvons utiliser la méthode emit
. Voici quelques exemples de base : const eventNames = emitter.eventNames(); console.log(eventNames); // ['event']
on
pour enregistrer un écouteur d'événement. Lorsque l'événement 'event'
est émis, la fonction callback
sera automatiquement appelée. Ensuite, nous utilisons la méthode emit
pour émettre l'événement 'event'
, qui déclenche la fonction callback
. Enfin, nous utilisons la méthode off
pour supprimer la surveillance par la fonction callback
de l'événement 'event'
. 🎜🎜En plus des méthodes on
, off
et emit
, nous pouvons également utiliser d'autres méthodes pour faire fonctionner l'émetteur. Parmi elles, la méthode once
est similaire à la méthode on
. La différence est que la méthode once
supprimera automatiquement l'écouteur d'événement après l'événement. est émis une seule fois. De plus, la méthode prependListener
peut insérer l'écouteur d'événement au début de la liste des écouteurs d'événements, et la méthode prependOnceListener
fournit l'écouteur d'événements en haut de la liste des écouteurs. devant et ne sera appelé qu’une seule fois. 🎜rrreee🎜Bien sûr, nous pouvons également utiliser la méthode eventNames
pour obtenir la liste des noms de tous les événements enregistrés sur l'objet actuel. 🎜rrreee🎜 Dans l'ensemble, utiliser l'émetteur de Node.js est un moyen de communication très utile. Les émetteurs nous permettent d'établir des relations de couplage lâches entre les objets, réduisant ainsi la complexité des applications et les coûts de maintenance. Grâce aux émetteurs, nous pouvons facilement mettre en œuvre la communication de données et la gestion des événements entre les objets, améliorant ainsi la fiabilité et l'évolutivité de nos applications. 🎜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!