ObjetEventEmitter
EventEmitter est un objet déclencheur d'événements, qui peut être utilisé pour établir le modèle d'observateur. Les objets qui prennent en charge le déclenchement d'événements en héritent tous.
Lorsqu'un événement est déclenché, tous les écouteurs associés à l'événement sont appelés de manière asynchrone. Cela nous permet également de créer un code hautement personnalisable et flexible.
Les fonctions couramment utilisées incluent : addListener/on, once, RemoveListener/off, RemoveAllListeners et émettent.
Voici un exemple de code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23var fs = require('fs');
var EventEmitter = require('events');
var event = new EventEmitter();
event.on('read_file', function(filename) {
fs.readFile(filename, 'utf8', function(err, data) {
if (err) {
event.emit('error', err);
return;
}
event.emit('show_content', data);
});
});
event.on('error', function(err) {
console.log(`Error ${err}`);
});
event.on('show_content', function(content) {
console.log(content);
});
event.emit('read_file', 'test.txt');
event.emit('read_file', 'test.txt')
Lorsque l'exemple de code ci-dessus est exécuté, l'événement d'instance émetteur d'événement écoute d'abord l'événement 'read_file', puis déclenche l'opération de lecture du fichier lorsque l'événement est déclenché ( ). Lorsque la lecture est réussie, l'événement 'show_content' sera déclenché. À ce moment, la fonction qui a écouté l'événement 'show_content' sera exécutée et le contenu du fichier sera affiché. Si une erreur se produit lors de la lecture du fichier, l'événement « erreur » est déclenché et l'échec de l'opération est géré.
Ce modèle présente de grands avantages dans les scénarios commerciaux traitant d'opérations asynchrones.
relation d'héritage
Constructeur
EventEmitter
Constructeur
1new EventEmitter();
objet
objet déclencheur d'événement
1EventEmitter new EventEmitter;
propriétés statiques
defaultMaxListeners
Entier, le nombre maximum global d'auditeurs par défaut
1static Integer EventEmitter.defaultMaxListeners;
fonction membre
on
Lier un gestionnaire d'événements à l'objet
1
2Object EventEmitter.on(String ev,
Function func);
Paramètres d'appel :
- ev: String, spécifie le nom de l'événement
- func: Fonction, spécifiez la fonction de traitement des événements
Résultats de retour :
- Object, renvoie l'objet événement lui-même pour faciliter les appels en chaîne
Lier un gestionnaire d'événements à l'objet
1Object EventEmitter.on(Object map);
Paramètres d'appel :
- map: Objet, spécifie la relation de mappage d'événement, le nom de l'attribut de l'objet sera utilisé comme nom d'événement et la valeur de l'attribut sera utilisée comme fonction de traitement d'événement
Résultats de retour :
- Object, renvoie l'objet événement lui-même pour faciliter les appels en chaîne
addListener
Lier un gestionnaire d'événements à l'objet
1
2Object EventEmitter.addListener(String ev,
Function func);
Paramètres d'appel :
- ev: String, spécifie le nom de l'événement
- func: Fonction, spécifiez la fonction de traitement des événements
Résultats de retour :
- Object, renvoie l'objet événement lui-même pour faciliter les appels en chaîne
Lier un gestionnaire d'événements à l'objet
1Object EventEmitter.addListener(Object map);
Paramètres d'appel :
- map: Objet, spécifie la relation de mappage d'événement, le nom de l'attribut de l'objet sera utilisé comme nom d'événement et la valeur de l'attribut sera utilisée comme fonction de traitement d'événement
Résultats de retour :
- Object, renvoie l'objet événement lui-même pour faciliter les appels en chaîne
prependListener
Lier un gestionnaire d'événements à l'origine de l'objet
1
2Object EventEmitter.prependListener(String ev,
Function func);
Paramètres d'appel :
- ev: String, spécifie le nom de l'événement
- func: Fonction, spécifiez la fonction de traitement des événements
Résultats de retour :
- Object, renvoie l'objet événement lui-même pour faciliter les appels en chaîne
Lier un gestionnaire d'événements à l'origine de l'objet
1Object EventEmitter.prependListener(Object map);
Paramètres d'appel :
- map: Objet, spécifie la relation de mappage d'événement, le nom de l'attribut de l'objet sera utilisé comme nom d'événement et la valeur de l'attribut sera utilisée comme fonction de traitement d'événement
Résultats de retour :
- Object, renvoie l'objet événement lui-même pour faciliter les appels en chaîne
once
Liez un gestionnaire d'événement unique à l'objet.Le gestionnaire unique ne sera déclenché qu'une seule fois.
1
2Object EventEmitter.once(String ev,
Function func);
Paramètres d'appel :
- ev: String, spécifie le nom de l'événement
- func: Fonction, spécifiez la fonction de traitement des événements
Résultats de retour :
- Object, renvoie l'objet événement lui-même pour faciliter les appels en chaîne
Liez un gestionnaire d'événement unique à l'objet.Le gestionnaire unique ne sera déclenché qu'une seule fois.
1Object EventEmitter.once(Object map);
Paramètres d'appel :
- map: Objet, spécifie la relation de mappage d'événement, le nom de l'attribut de l'objet sera utilisé comme nom d'événement et la valeur de l'attribut sera utilisée comme fonction de traitement d'événement
Résultats de retour :
- Object, renvoie l'objet événement lui-même pour faciliter les appels en chaîne
prependOnceListener
Lier un gestionnaire d'événements à l'origine de l'objet
1
2Object EventEmitter.prependOnceListener(String ev,
Function func);
Paramètres d'appel :
- ev: String, spécifie le nom de l'événement
- func: Fonction, spécifiez la fonction de traitement des événements
Résultats de retour :
- Object, renvoie l'objet événement lui-même pour faciliter les appels en chaîne
Lier un gestionnaire d'événements à l'origine de l'objet
1Object EventEmitter.prependOnceListener(Object map);
Paramètres d'appel :
- map: Objet, spécifie la relation de mappage d'événement, le nom de l'attribut de l'objet sera utilisé comme nom d'événement et la valeur de l'attribut sera utilisée comme fonction de traitement d'événement
Résultats de retour :
- Object, renvoie l'objet événement lui-même pour faciliter les appels en chaîne
off
Désaffecter une fonction de la file d'attente de traitement des objets
1
2Object EventEmitter.off(String ev,
Function func);
Paramètres d'appel :
- ev: String, spécifie le nom de l'événement
- func: Fonction, spécifiez la fonction de traitement des événements
Résultats de retour :
- Object, renvoie l'objet événement lui-même pour faciliter les appels en chaîne
Annuler toutes les fonctions dans la file d'attente de traitement des objets
1Object EventEmitter.off(String ev);
Paramètres d'appel :
- ev: String, spécifie le nom de l'événement
Résultats de retour :
- Object, renvoie l'objet événement lui-même pour faciliter les appels en chaîne
Désaffecter une fonction de la file d'attente de traitement des objets
1Object EventEmitter.off(Object map);
Paramètres d'appel :
- map: Objet, spécifie la relation de mappage d'événement, le nom de l'attribut de l'objet est utilisé comme nom d'événement et la valeur de l'attribut est utilisée comme fonction de traitement d'événement
Résultats de retour :
- Object, renvoie l'objet événement lui-même pour faciliter les appels en chaîne
removeListener
Désaffecter une fonction de la file d'attente de traitement des objets
1
2Object EventEmitter.removeListener(String ev,
Function func);
Paramètres d'appel :
- ev: String, spécifie le nom de l'événement
- func: Fonction, spécifiez la fonction de traitement des événements
Résultats de retour :
- Object, renvoie l'objet événement lui-même pour faciliter les appels en chaîne
Annuler toutes les fonctions dans la file d'attente de traitement des objets
1Object EventEmitter.removeListener(String ev);
Paramètres d'appel :
- ev: String, spécifie le nom de l'événement
Résultats de retour :
- Object, renvoie l'objet événement lui-même pour faciliter les appels en chaîne
Désaffecter une fonction de la file d'attente de traitement des objets
1Object EventEmitter.removeListener(Object map);
Paramètres d'appel :
- map: Objet, spécifie la relation de mappage d'événement, le nom de l'attribut de l'objet est utilisé comme nom d'événement et la valeur de l'attribut est utilisée comme fonction de traitement d'événement
Résultats de retour :
- Object, renvoie l'objet événement lui-même pour faciliter les appels en chaîne
removeAllListeners
Annule tous les écouteurs de tous les événements de la file d'attente de traitement de l'objet. Si un événement est spécifié, supprime tous les écouteurs de l'événement spécifié.
1Object EventEmitter.removeAllListeners(String ev);
Paramètres d'appel :
- ev: String, spécifie le nom de l'événement
Résultats de retour :
- Object, renvoie l'objet événement lui-même pour faciliter les appels en chaîne
Annule tous les écouteurs de tous les événements de la file d'attente de traitement de l'objet. Si un événement est spécifié, supprime tous les écouteurs de l'événement spécifié.
1Object EventEmitter.removeAllListeners(Array evs = []);
Paramètres d'appel :
- evs: Tableau, précisez le nom de l'événement
Résultats de retour :
- Object, renvoie l'objet événement lui-même pour faciliter les appels en chaîne
setMaxListeners
La limite par défaut du nombre d'auditeurs, pour des raisons de compatibilité uniquement
1EventEmitter.setMaxListeners(Integer n);
Paramètres d'appel :
- n: Entier, précisez le nombre d'événements
getMaxListeners
Obtient le nombre limite par défaut d'écouteurs, pour des raisons de compatibilité uniquement
1Integer EventEmitter.getMaxListeners();
Résultats de retour :
- Integer, renvoie la quantité limite par défaut
listeners
Interrogez le tableau d'écoute pour l'événement spécifié de l'objet
1Array EventEmitter.listeners(String ev);
Paramètres d'appel :
- ev: String, spécifie le nom de l'événement
Résultats de retour :
- Array, renvoie le tableau d'écoute pour l'événement spécifié
listenerCount
Interroger le nombre d'écouteurs pour l'événement spécifié de l'objet
1Integer EventEmitter.listenerCount(String ev);
Paramètres d'appel :
- ev: String, spécifie le nom de l'événement
Résultats de retour :
- Integer, renvoie le nombre d'écouteurs pour l'événement spécifié
Interroger le nombre d'écouteurs pour l'événement spécifié de l'objet
1
2Integer EventEmitter.listenerCount(Value o,
String ev);
Paramètres d'appel :
- o: Valeur, précise l'objet de la requête
- ev: String, spécifie le nom de l'événement
Résultats de retour :
- Integer, renvoie le nombre d'écouteurs pour l'événement spécifié
eventNames
Nom de l'événement d'écoute de requête
1Array EventEmitter.eventNames();
Résultats de retour :
- Array, renvoie un tableau de noms d'événements
emit
Déclencher activement un événement
1
2Boolean EventEmitter.emit(String ev,
...args);
Paramètres d'appel :
- ev: Chaîne, nom de l'événement
- args: ..., les paramètres de l'événement seront transmis à la fonction de traitement des événements
Résultats de retour :
- Boolean, renvoie l'état du déclencheur d'événement, renvoie vrai s'il y a un événement de réponse, sinon renvoie faux
toString
Renvoie la représentation sous forme de chaîne de l'objet. Généralement, "[Native Object]" est renvoyé. L'objet peut être réimplémenté en fonction de ses propres caractéristiques.
1String EventEmitter.toString();
Résultats de retour :
- String, renvoie la représentation sous forme de chaîne de l'objet
toJSON
Renvoie une représentation au format JSON de l'objet, renvoyant généralement une collection de propriétés lisibles définies par l'objet.
1Value EventEmitter.toJSON(String key = "");
Paramètres d'appel :
- key: Chaîne, non utilisée
Résultats de retour :
- Value, renvoie une valeur contenant du JSON sérialisable