ObjectEventEmitter
EventEmitter és un objecte activador d'esdeveniments, que es pot utilitzar per establir el patró d'observador. Els objectes que admeten l'activació d'esdeveniments hereten d'aquest
Quan s'activa un esdeveniment, tots els oients associats a l'esdeveniment es criden de manera asíncrona. També ens permet crear codi altament personalitzable i flexible.
Les funcions que s'utilitzen habitualment inclouen: addListener/on, once, removeListener/off, removeAllListeners i emit.
Aquí teniu un codi de mostra:
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')
Quan s'executa el codi d'exemple anterior, l'esdeveniment d'instància de l'emissor d'esdeveniments escolta primer l'esdeveniment "read_file" i després activa l'operació de lectura del fitxer quan s'activa l'esdeveniment ( ). Quan la lectura sigui correcta, s'activarà l'esdeveniment 'show_content'. En aquest moment, s'executarà la funció que va escoltar l'esdeveniment 'show_content' i es mostrarà el contingut del fitxer. Si es produeix un error en llegir el fitxer, s'activa l'esdeveniment "error" i es gestiona l'error de l'operació.
Aquest model té grans avantatges en escenaris empresarials que tracten operacions asíncrones.
relació hereditària
Constructor
EventEmitter
Constructor
1new EventEmitter();
objecte
objecte activador d'esdeveniments
1EventEmitter new EventEmitter;
propietats estàtiques
defaultMaxListeners
Enter, el nombre màxim global predeterminat d'oients
1static Integer EventEmitter.defaultMaxListeners;
funció de membre
on
Enllaceu un controlador d'esdeveniments a l'objecte
1
2Object EventEmitter.on(String ev,
Function func);
Paràmetres de trucada:
- ev: Cadena, especifica el nom de l'esdeveniment
- func: Funció, especifiqueu la funció de processament d'esdeveniments
Resultats de retorn:
- Object, retorna el propi objecte d'esdeveniment per facilitar les trucades en cadena
Enllaceu un controlador d'esdeveniments a l'objecte
1Object EventEmitter.on(Object map);
Paràmetres de trucada:
- map: Objecte, especifica la relació de mapatge d'esdeveniments, el nom de l'atribut de l'objecte s'utilitzarà com a nom de l'esdeveniment i el valor de l'atribut s'utilitzarà com a funció de processament d'esdeveniments
Resultats de retorn:
- Object, retorna el propi objecte d'esdeveniment per facilitar les trucades en cadena
addListener
Enllaceu un controlador d'esdeveniments a l'objecte
1
2Object EventEmitter.addListener(String ev,
Function func);
Paràmetres de trucada:
- ev: Cadena, especifica el nom de l'esdeveniment
- func: Funció, especifiqueu la funció de processament d'esdeveniments
Resultats de retorn:
- Object, retorna el propi objecte d'esdeveniment per facilitar les trucades en cadena
Enllaceu un controlador d'esdeveniments a l'objecte
1Object EventEmitter.addListener(Object map);
Paràmetres de trucada:
- map: Objecte, especifica la relació de mapatge d'esdeveniments, el nom de l'atribut de l'objecte s'utilitzarà com a nom de l'esdeveniment i el valor de l'atribut s'utilitzarà com a funció de processament d'esdeveniments
Resultats de retorn:
- Object, retorna el propi objecte d'esdeveniment per facilitar les trucades en cadena
prependListener
Enllaceu un controlador d'esdeveniments a l'origen de l'objecte
1
2Object EventEmitter.prependListener(String ev,
Function func);
Paràmetres de trucada:
- ev: Cadena, especifica el nom de l'esdeveniment
- func: Funció, especifiqueu la funció de processament d'esdeveniments
Resultats de retorn:
- Object, retorna el propi objecte d'esdeveniment per facilitar les trucades en cadena
Enllaceu un controlador d'esdeveniments a l'origen de l'objecte
1Object EventEmitter.prependListener(Object map);
Paràmetres de trucada:
- map: Objecte, especifica la relació de mapatge d'esdeveniments, el nom de l'atribut de l'objecte s'utilitzarà com a nom de l'esdeveniment i el valor de l'atribut s'utilitzarà com a funció de processament d'esdeveniments
Resultats de retorn:
- Object, retorna el propi objecte d'esdeveniment per facilitar les trucades en cadena
once
Enllaça un controlador d'esdeveniments únic a l'objecte. El controlador únic només s'activarà una vegada.
1
2Object EventEmitter.once(String ev,
Function func);
Paràmetres de trucada:
- ev: Cadena, especifica el nom de l'esdeveniment
- func: Funció, especifiqueu la funció de processament d'esdeveniments
Resultats de retorn:
- Object, retorna el propi objecte d'esdeveniment per facilitar les trucades en cadena
Enllaça un controlador d'esdeveniments únic a l'objecte. El controlador únic només s'activarà una vegada.
1Object EventEmitter.once(Object map);
Paràmetres de trucada:
- map: Objecte, especifica la relació de mapatge d'esdeveniments, el nom de l'atribut de l'objecte s'utilitzarà com a nom de l'esdeveniment i el valor de l'atribut s'utilitzarà com a funció de processament d'esdeveniments
Resultats de retorn:
- Object, retorna el propi objecte d'esdeveniment per facilitar les trucades en cadena
prependOnceListener
Enllaceu un controlador d'esdeveniments a l'origen de l'objecte
1
2Object EventEmitter.prependOnceListener(String ev,
Function func);
Paràmetres de trucada:
- ev: Cadena, especifica el nom de l'esdeveniment
- func: Funció, especifiqueu la funció de processament d'esdeveniments
Resultats de retorn:
- Object, retorna el propi objecte d'esdeveniment per facilitar les trucades en cadena
Enllaceu un controlador d'esdeveniments a l'origen de l'objecte
1Object EventEmitter.prependOnceListener(Object map);
Paràmetres de trucada:
- map: Objecte, especifica la relació de mapatge d'esdeveniments, el nom de l'atribut de l'objecte s'utilitzarà com a nom de l'esdeveniment i el valor de l'atribut s'utilitzarà com a funció de processament d'esdeveniments
Resultats de retorn:
- Object, retorna el propi objecte d'esdeveniment per facilitar les trucades en cadena
off
Desassignar una funció de la cua de processament d'objectes
1
2Object EventEmitter.off(String ev,
Function func);
Paràmetres de trucada:
- ev: Cadena, especifica el nom de l'esdeveniment
- func: Funció, especifiqueu la funció de processament d'esdeveniments
Resultats de retorn:
- Object, retorna el propi objecte d'esdeveniment per facilitar les trucades en cadena
Cancel·la totes les funcions de la cua de processament d'objectes
1Object EventEmitter.off(String ev);
Paràmetres de trucada:
- ev: Cadena, especifica el nom de l'esdeveniment
Resultats de retorn:
- Object, retorna el propi objecte d'esdeveniment per facilitar les trucades en cadena
Desassignar una funció de la cua de processament d'objectes
1Object EventEmitter.off(Object map);
Paràmetres de trucada:
- map: Objecte, especifica la relació de mapatge d'esdeveniments, el nom de l'atribut de l'objecte s'utilitza com a nom de l'esdeveniment i el valor de l'atribut s'utilitza com a funció de processament d'esdeveniments
Resultats de retorn:
- Object, retorna el propi objecte d'esdeveniment per facilitar les trucades en cadena
removeListener
Desassignar una funció de la cua de processament d'objectes
1
2Object EventEmitter.removeListener(String ev,
Function func);
Paràmetres de trucada:
- ev: Cadena, especifica el nom de l'esdeveniment
- func: Funció, especifiqueu la funció de processament d'esdeveniments
Resultats de retorn:
- Object, retorna el propi objecte d'esdeveniment per facilitar les trucades en cadena
Cancel·la totes les funcions de la cua de processament d'objectes
1Object EventEmitter.removeListener(String ev);
Paràmetres de trucada:
- ev: Cadena, especifica el nom de l'esdeveniment
Resultats de retorn:
- Object, retorna el propi objecte d'esdeveniment per facilitar les trucades en cadena
Desassignar una funció de la cua de processament d'objectes
1Object EventEmitter.removeListener(Object map);
Paràmetres de trucada:
- map: Objecte, especifica la relació de mapatge d'esdeveniments, el nom de l'atribut de l'objecte s'utilitza com a nom de l'esdeveniment i el valor de l'atribut s'utilitza com a funció de processament d'esdeveniments
Resultats de retorn:
- Object, retorna el propi objecte d'esdeveniment per facilitar les trucades en cadena
removeAllListeners
Cancel·la tots els oients de tots els esdeveniments de la cua de processament de l'objecte. Si s'especifica un esdeveniment, elimina tots els oients de l'esdeveniment especificat.
1Object EventEmitter.removeAllListeners(String ev);
Paràmetres de trucada:
- ev: Cadena, especifica el nom de l'esdeveniment
Resultats de retorn:
- Object, retorna el propi objecte d'esdeveniment per facilitar les trucades en cadena
Cancel·la tots els oients de tots els esdeveniments de la cua de processament de l'objecte. Si s'especifica un esdeveniment, elimina tots els oients de l'esdeveniment especificat.
1Object EventEmitter.removeAllListeners(Array evs = []);
Paràmetres de trucada:
- evs: Matriu, especifiqueu el nom de l'esdeveniment
Resultats de retorn:
- Object, retorna el propi objecte d'esdeveniment per facilitar les trucades en cadena
setMaxListeners
El límit predeterminat del nombre d'oients, només per compatibilitat
1EventEmitter.setMaxListeners(Integer n);
Paràmetres de trucada:
- n: Enter, especifiqueu el nombre d'esdeveniments
getMaxListeners
Obté el nombre límit predeterminat d'oients, només per compatibilitat
1Integer EventEmitter.getMaxListeners();
Resultats de retorn:
- Integer, retorna la quantitat límit predeterminada
listeners
Consulteu la matriu d'escolta per a l'esdeveniment especificat de l'objecte
1Array EventEmitter.listeners(String ev);
Paràmetres de trucada:
- ev: Cadena, especifica el nom de l'esdeveniment
Resultats de retorn:
- Array, retorna la matriu d'escolta per a l'esdeveniment especificat
listenerCount
Consulteu el nombre d'oients per a l'esdeveniment especificat de l'objecte
1Integer EventEmitter.listenerCount(String ev);
Paràmetres de trucada:
- ev: Cadena, especifica el nom de l'esdeveniment
Resultats de retorn:
- Integer, retorna el nombre d'oients per a l'esdeveniment especificat
Consulteu el nombre d'oients per a l'esdeveniment especificat de l'objecte
1
2Integer EventEmitter.listenerCount(Value o,
String ev);
Paràmetres de trucada:
- o: Valor, especifica l'objecte de la consulta
- ev: Cadena, especifica el nom de l'esdeveniment
Resultats de retorn:
- Integer, retorna el nombre d'oients per a l'esdeveniment especificat
eventNames
Consulta el nom de l'esdeveniment de l'oient
1Array EventEmitter.eventNames();
Resultats de retorn:
- Array, retorna una matriu de noms d'esdeveniments
emit
Activa activament un esdeveniment
1
2Boolean EventEmitter.emit(String ev,
...args);
Paràmetres de trucada:
- ev: cadena, nom de l'esdeveniment
- args: ..., els paràmetres d'esdeveniment es passaran a la funció de processament d'esdeveniments
Resultats de retorn:
- Boolean, retorna l'estat de l'activador de l'esdeveniment, retorna true si hi ha un esdeveniment de resposta, en cas contrari retorna false
toString
Retorna la representació de cadena de l'objecte. En general, es retorna "[Objecte natiu]". L'objecte es pot tornar a implementar segons les seves pròpies característiques.
1String EventEmitter.toString();
Resultats de retorn:
- String, retorna la representació de cadena de l'objecte
toJSON
Retorna una representació en format JSON de l'objecte, generalment retornant una col·lecció de propietats llegibles definides per l'objecte.
1Value EventEmitter.toJSON(String key = "");
Paràmetres de trucada:
- key: Corda, no utilitzada
Resultats de retorn:
- Value, retorna un valor que conté JSON serializable