ObjetoEventoEmisor
EventEmitter es un objeto de activación de eventos, que se puede utilizar para establecer el patrón de observador. Todos los objetos que admiten la activación de eventos heredan de este
Cuando se activa un evento, todos los oyentes asociados con el evento se llaman de forma asincrónica. También nos permite crear código altamente personalizable y flexible.
Las funciones comúnmente utilizadas incluyen: addListener/on, once, removeListener/off, removeAllListeners y emit.
Aquí hay un código de muestra:
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')
Cuando se ejecuta el código de muestra anterior, el evento de instancia del emisor de eventos primero escucha el evento 'read_file' y luego activa la operación de lectura del archivo cuando se activa el evento ( ). Cuando la lectura sea exitosa, se activará el evento 'show_content'. En este momento, se ejecutará la función que escuchó el evento 'show_content' y se mostrará el contenido del archivo. Si se produce un error al leer el archivo, se activa el evento de "error" y se gestiona el error de la operación.
Este modelo tiene grandes ventajas en escenarios empresariales que tratan con operaciones asincrónicas.
relación de herencia
Constructor
EventEmitter
Constructor
1new EventEmitter();
objeto
objeto desencadenante de evento
1EventEmitter new EventEmitter;
propiedades estáticas
defaultMaxListeners
Entero, el número máximo global predeterminado de oyentes
1static Integer EventEmitter.defaultMaxListeners;
función miembro
on
Vincular un controlador de eventos al objeto
1
2Object EventEmitter.on(String ev,
Function func);
Parámetros de llamada:
- ev: Cadena, especifica el nombre del evento.
- func: Función, especifique la función de procesamiento de eventos
Resultados de devolución:
- Object, devuelve el objeto de evento en sí para facilitar las llamadas en cadena
Vincular un controlador de eventos al objeto
1Object EventEmitter.on(Object map);
Parámetros de llamada:
- map: Objeto, especifica la relación de mapeo de eventos, el nombre del atributo del objeto se usará como nombre del evento y el valor del atributo se usará como función de procesamiento de eventos.
Resultados de devolución:
- Object, devuelve el objeto de evento en sí para facilitar las llamadas en cadena
addListener
Vincular un controlador de eventos al objeto
1
2Object EventEmitter.addListener(String ev,
Function func);
Parámetros de llamada:
- ev: Cadena, especifica el nombre del evento.
- func: Función, especifique la función de procesamiento de eventos
Resultados de devolución:
- Object, devuelve el objeto de evento en sí para facilitar las llamadas en cadena
Vincular un controlador de eventos al objeto
1Object EventEmitter.addListener(Object map);
Parámetros de llamada:
- map: Objeto, especifica la relación de mapeo de eventos, el nombre del atributo del objeto se usará como nombre del evento y el valor del atributo se usará como función de procesamiento de eventos.
Resultados de devolución:
- Object, devuelve el objeto de evento en sí para facilitar las llamadas en cadena
prependListener
Vincular un controlador de eventos al origen del objeto
1
2Object EventEmitter.prependListener(String ev,
Function func);
Parámetros de llamada:
- ev: Cadena, especifica el nombre del evento.
- func: Función, especifique la función de procesamiento de eventos
Resultados de devolución:
- Object, devuelve el objeto de evento en sí para facilitar las llamadas en cadena
Vincular un controlador de eventos al origen del objeto
1Object EventEmitter.prependListener(Object map);
Parámetros de llamada:
- map: Objeto, especifica la relación de mapeo de eventos, el nombre del atributo del objeto se usará como nombre del evento y el valor del atributo se usará como función de procesamiento de eventos.
Resultados de devolución:
- Object, devuelve el objeto de evento en sí para facilitar las llamadas en cadena
once
Vincula un controlador de eventos de una sola vez al objeto. El controlador de eventos de una sola vez solo se activará una vez.
1
2Object EventEmitter.once(String ev,
Function func);
Parámetros de llamada:
- ev: Cadena, especifica el nombre del evento.
- func: Función, especifique la función de procesamiento de eventos
Resultados de devolución:
- Object, devuelve el objeto de evento en sí para facilitar las llamadas en cadena
Vincula un controlador de eventos de una sola vez al objeto. El controlador de eventos de una sola vez solo se activará una vez.
1Object EventEmitter.once(Object map);
Parámetros de llamada:
- map: Objeto, especifica la relación de mapeo de eventos, el nombre del atributo del objeto se usará como nombre del evento y el valor del atributo se usará como función de procesamiento de eventos.
Resultados de devolución:
- Object, devuelve el objeto de evento en sí para facilitar las llamadas en cadena
prependOnceListener
Vincular un controlador de eventos al origen del objeto
1
2Object EventEmitter.prependOnceListener(String ev,
Function func);
Parámetros de llamada:
- ev: Cadena, especifica el nombre del evento.
- func: Función, especifique la función de procesamiento de eventos
Resultados de devolución:
- Object, devuelve el objeto de evento en sí para facilitar las llamadas en cadena
Vincular un controlador de eventos al origen del objeto
1Object EventEmitter.prependOnceListener(Object map);
Parámetros de llamada:
- map: Objeto, especifica la relación de mapeo de eventos, el nombre del atributo del objeto se usará como nombre del evento y el valor del atributo se usará como función de procesamiento de eventos.
Resultados de devolución:
- Object, devuelve el objeto de evento en sí para facilitar las llamadas en cadena
off
Desasignar una función de la cola de procesamiento de objetos
1
2Object EventEmitter.off(String ev,
Function func);
Parámetros de llamada:
- ev: Cadena, especifica el nombre del evento.
- func: Función, especifique la función de procesamiento de eventos
Resultados de devolución:
- Object, devuelve el objeto de evento en sí para facilitar las llamadas en cadena
Cancelar todas las funciones en la cola de procesamiento de objetos
1Object EventEmitter.off(String ev);
Parámetros de llamada:
- ev: Cadena, especifica el nombre del evento.
Resultados de devolución:
- Object, devuelve el objeto de evento en sí para facilitar las llamadas en cadena
Desasignar una función de la cola de procesamiento de objetos
1Object EventEmitter.off(Object map);
Parámetros de llamada:
- map: Objeto, especifica la relación de mapeo de eventos, el nombre del atributo del objeto se usa como nombre del evento y el valor del atributo se usa como función de procesamiento de eventos.
Resultados de devolución:
- Object, devuelve el objeto de evento en sí para facilitar las llamadas en cadena
removeListener
Desasignar una función de la cola de procesamiento de objetos
1
2Object EventEmitter.removeListener(String ev,
Function func);
Parámetros de llamada:
- ev: Cadena, especifica el nombre del evento.
- func: Función, especifique la función de procesamiento de eventos
Resultados de devolución:
- Object, devuelve el objeto de evento en sí para facilitar las llamadas en cadena
Cancelar todas las funciones en la cola de procesamiento de objetos
1Object EventEmitter.removeListener(String ev);
Parámetros de llamada:
- ev: Cadena, especifica el nombre del evento.
Resultados de devolución:
- Object, devuelve el objeto de evento en sí para facilitar las llamadas en cadena
Desasignar una función de la cola de procesamiento de objetos
1Object EventEmitter.removeListener(Object map);
Parámetros de llamada:
- map: Objeto, especifica la relación de mapeo de eventos, el nombre del atributo del objeto se usa como nombre del evento y el valor del atributo se usa como función de procesamiento de eventos.
Resultados de devolución:
- Object, devuelve el objeto de evento en sí para facilitar las llamadas en cadena
removeAllListeners
Cancela todos los oyentes de todos los eventos de la cola de procesamiento del objeto. Si se especifica un evento, elimina todos los oyentes del evento especificado.
1Object EventEmitter.removeAllListeners(String ev);
Parámetros de llamada:
- ev: Cadena, especifica el nombre del evento.
Resultados de devolución:
- Object, devuelve el objeto de evento en sí para facilitar las llamadas en cadena
Cancela todos los oyentes de todos los eventos de la cola de procesamiento del objeto. Si se especifica un evento, elimina todos los oyentes del evento especificado.
1Object EventEmitter.removeAllListeners(Array evs = []);
Parámetros de llamada:
- evs: Matriz, especifique el nombre del evento
Resultados de devolución:
- Object, devuelve el objeto de evento en sí para facilitar las llamadas en cadena
setMaxListeners
El límite predeterminado en la cantidad de oyentes, solo por compatibilidad
1EventEmitter.setMaxListeners(Integer n);
Parámetros de llamada:
- n: Entero, especifica el número de eventos
getMaxListeners
Obtiene el número límite predeterminado de oyentes, solo por compatibilidad
1Integer EventEmitter.getMaxListeners();
Resultados de devolución:
- Integer, devuelve la cantidad límite predeterminada
listeners
Consultar la matriz de escucha para el evento especificado del objeto.
1Array EventEmitter.listeners(String ev);
Parámetros de llamada:
- ev: Cadena, especifica el nombre del evento.
Resultados de devolución:
- Array, devuelve la matriz de escucha para el evento especificado
listenerCount
Consultar el número de oyentes para el evento especificado del objeto.
1Integer EventEmitter.listenerCount(String ev);
Parámetros de llamada:
- ev: Cadena, especifica el nombre del evento.
Resultados de devolución:
- Integer, devuelve el número de oyentes para el evento especificado
Consultar el número de oyentes para el evento especificado del objeto.
1
2Integer EventEmitter.listenerCount(Value o,
String ev);
Parámetros de llamada:
- o: Valor, especifica el objeto de la consulta.
- ev: Cadena, especifica el nombre del evento.
Resultados de devolución:
- Integer, devuelve el número de oyentes para el evento especificado
eventNames
Nombre del evento del oyente de consultas
1Array EventEmitter.eventNames();
Resultados de devolución:
- Array, devuelve una serie de nombres de eventos
emit
Activar activamente un evento
1
2Boolean EventEmitter.emit(String ev,
...args);
Parámetros de llamada:
- ev: Cadena, nombre del evento
- args: ..., los parámetros del evento se pasarán a la función de procesamiento de eventos
Resultados de devolución:
- Boolean, devuelve el estado del activador del evento, devuelve verdadero si hay un evento de respuesta; de lo contrario, devuelve falso
toString
Devuelve la representación de cadena del objeto. Generalmente, se devuelve "[Objeto nativo]". El objeto se puede volver a implementar de acuerdo con sus propias características.
1String EventEmitter.toString();
Resultados de devolución:
- String, devuelve la representación de cadena del objeto
toJSON
Devuelve una representación en formato JSON del objeto, que generalmente devuelve una colección de propiedades legibles definidas por el objeto.
1Value EventEmitter.toJSON(String key = "");
Parámetros de llamada:
- key: Cadena, no utilizada
Resultados de devolución:
- Value, devuelve un valor que contiene JSON serializable