ObjectEventEmitter
EventEmitter é un obxecto de activación de eventos, que se pode usar para establecer o patrón de observador. Os obxectos que admiten o desencadeamento de eventos herdan deste
Cando se activa un evento, todos os oíntes asociados co evento son chamados de forma asíncrona. Tamén nos permite crear código que é altamente personalizable e flexible.
As funcións de uso común inclúen: addListener/on, once, removeListener/off, removeAllListeners e emit.
Aquí tes un código 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')
Cando se executa o código de mostra anterior, o evento de instancia do emisor de eventos escoita primeiro o evento "read_file" e despois activa a operación de lectura do ficheiro cando se activa o evento ( ). Cando a lectura teña éxito, activarase o evento 'show_content'. Neste momento, executarase a función que escoitou o evento 'show_content' e amosarase o contido do ficheiro. Se se produce un erro ao ler o ficheiro, desenvólvese o evento "erro" e xestionarase o fallo da operación.
Este modelo ten grandes vantaxes en escenarios empresariais que tratan de operacións asíncronas.
relación de herdanza
Construtor
EventEmitter
Construtor
1new EventEmitter();
obxecto
obxecto de activación de eventos
1EventEmitter new EventEmitter;
propiedades estáticas
defaultMaxListeners
Enteiro, o número máximo global predeterminado de oíntes
1static Integer EventEmitter.defaultMaxListeners;
función de membro
on
Vincular un controlador de eventos ao obxecto
1
2Object EventEmitter.on(String ev,
Function func);
Parámetros de chamada:
- ev: Cadea, especifica o nome do evento
- func: Función, especifique a función de procesamento de eventos
Resultados de devolución:
- Object, devolve o propio obxecto do evento para facilitar as chamadas en cadea
Vincular un controlador de eventos ao obxecto
1Object EventEmitter.on(Object map);
Parámetros de chamada:
- map: Obxecto, especifica a relación de asignación de eventos, o nome do atributo do obxecto empregarase como nome do evento e o valor do atributo como función de procesamento de eventos
Resultados de devolución:
- Object, devolve o propio obxecto do evento para facilitar as chamadas en cadea
addListener
Vincular un controlador de eventos ao obxecto
1
2Object EventEmitter.addListener(String ev,
Function func);
Parámetros de chamada:
- ev: Cadea, especifica o nome do evento
- func: Función, especifique a función de procesamento de eventos
Resultados de devolución:
- Object, devolve o propio obxecto do evento para facilitar as chamadas en cadea
Vincular un controlador de eventos ao obxecto
1Object EventEmitter.addListener(Object map);
Parámetros de chamada:
- map: Obxecto, especifica a relación de asignación de eventos, o nome do atributo do obxecto empregarase como nome do evento e o valor do atributo como función de procesamento de eventos
Resultados de devolución:
- Object, devolve o propio obxecto do evento para facilitar as chamadas en cadea
prependListener
Vincular un controlador de eventos á orixe do obxecto
1
2Object EventEmitter.prependListener(String ev,
Function func);
Parámetros de chamada:
- ev: Cadea, especifica o nome do evento
- func: Función, especifique a función de procesamento de eventos
Resultados de devolución:
- Object, devolve o propio obxecto do evento para facilitar as chamadas en cadea
Vincular un controlador de eventos á orixe do obxecto
1Object EventEmitter.prependListener(Object map);
Parámetros de chamada:
- map: Obxecto, especifica a relación de asignación de eventos, o nome do atributo do obxecto empregarase como nome do evento e o valor do atributo como función de procesamento de eventos
Resultados de devolución:
- Object, devolve o propio obxecto do evento para facilitar as chamadas en cadea
once
Vincula un controlador de eventos único ao obxecto. O manejador único só se activará unha vez.
1
2Object EventEmitter.once(String ev,
Function func);
Parámetros de chamada:
- ev: Cadea, especifica o nome do evento
- func: Función, especifique a función de procesamento de eventos
Resultados de devolución:
- Object, devolve o propio obxecto do evento para facilitar as chamadas en cadea
Vincula un controlador de eventos único ao obxecto. O manejador único só se activará unha vez.
1Object EventEmitter.once(Object map);
Parámetros de chamada:
- map: Obxecto, especifica a relación de asignación de eventos, o nome do atributo do obxecto empregarase como nome do evento e o valor do atributo como función de procesamento de eventos
Resultados de devolución:
- Object, devolve o propio obxecto do evento para facilitar as chamadas en cadea
prependOnceListener
Vincular un controlador de eventos á orixe do obxecto
1
2Object EventEmitter.prependOnceListener(String ev,
Function func);
Parámetros de chamada:
- ev: Cadea, especifica o nome do evento
- func: Función, especifique a función de procesamento de eventos
Resultados de devolución:
- Object, devolve o propio obxecto do evento para facilitar as chamadas en cadea
Vincular un controlador de eventos á orixe do obxecto
1Object EventEmitter.prependOnceListener(Object map);
Parámetros de chamada:
- map: Obxecto, especifica a relación de asignación de eventos, o nome do atributo do obxecto empregarase como nome do evento e o valor do atributo como función de procesamento de eventos
Resultados de devolución:
- Object, devolve o propio obxecto do evento para facilitar as chamadas en cadea
off
Desasignar unha función da cola de procesamento de obxectos
1
2Object EventEmitter.off(String ev,
Function func);
Parámetros de chamada:
- ev: Cadea, especifica o nome do evento
- func: Función, especifique a función de procesamento de eventos
Resultados de devolución:
- Object, devolve o propio obxecto do evento para facilitar as chamadas en cadea
Cancela todas as funcións da cola de procesamento de obxectos
1Object EventEmitter.off(String ev);
Parámetros de chamada:
- ev: Cadea, especifica o nome do evento
Resultados de devolución:
- Object, devolve o propio obxecto do evento para facilitar as chamadas en cadea
Desasignar unha función da cola de procesamento de obxectos
1Object EventEmitter.off(Object map);
Parámetros de chamada:
- map: Obxecto, especifica a relación de asignación de eventos, o nome do atributo do obxecto úsase como nome do evento e o valor do atributo úsase como función de procesamento de eventos.
Resultados de devolución:
- Object, devolve o propio obxecto do evento para facilitar as chamadas en cadea
removeListener
Desasignar unha función da cola de procesamento de obxectos
1
2Object EventEmitter.removeListener(String ev,
Function func);
Parámetros de chamada:
- ev: Cadea, especifica o nome do evento
- func: Función, especifique a función de procesamento de eventos
Resultados de devolución:
- Object, devolve o propio obxecto do evento para facilitar as chamadas en cadea
Cancela todas as funcións da cola de procesamento de obxectos
1Object EventEmitter.removeListener(String ev);
Parámetros de chamada:
- ev: Cadea, especifica o nome do evento
Resultados de devolución:
- Object, devolve o propio obxecto do evento para facilitar as chamadas en cadea
Desasignar unha función da cola de procesamento de obxectos
1Object EventEmitter.removeListener(Object map);
Parámetros de chamada:
- map: Obxecto, especifica a relación de asignación de eventos, o nome do atributo do obxecto úsase como nome do evento e o valor do atributo úsase como función de procesamento de eventos.
Resultados de devolución:
- Object, devolve o propio obxecto do evento para facilitar as chamadas en cadea
removeAllListeners
Cancela todos os oíntes de todos os eventos da cola de procesamento do obxecto. Se se especifica un evento, elimina todos os oíntes do evento especificado.
1Object EventEmitter.removeAllListeners(String ev);
Parámetros de chamada:
- ev: Cadea, especifica o nome do evento
Resultados de devolución:
- Object, devolve o propio obxecto do evento para facilitar as chamadas en cadea
Cancela todos os oíntes de todos os eventos da cola de procesamento do obxecto. Se se especifica un evento, elimina todos os oíntes do evento especificado.
1Object EventEmitter.removeAllListeners(Array evs = []);
Parámetros de chamada:
- evs: Matriz, especifique o nome do evento
Resultados de devolución:
- Object, devolve o propio obxecto do evento para facilitar as chamadas en cadea
setMaxListeners
O límite predeterminado no número de oíntes, só para compatibilidade
1EventEmitter.setMaxListeners(Integer n);
Parámetros de chamada:
- n: Número enteiro, especifique o número de eventos
getMaxListeners
Obtén o número límite predeterminado de oíntes, só para compatibilidade
1Integer EventEmitter.getMaxListeners();
Resultados de devolución:
- Integer, devolve a cantidade límite predeterminada
listeners
Consulta a matriz de escoita para o evento especificado do obxecto
1Array EventEmitter.listeners(String ev);
Parámetros de chamada:
- ev: Cadea, especifica o nome do evento
Resultados de devolución:
- Array, devolve a matriz de escoita para o evento especificado
listenerCount
Consulta o número de oíntes para o evento especificado do obxecto
1Integer EventEmitter.listenerCount(String ev);
Parámetros de chamada:
- ev: Cadea, especifica o nome do evento
Resultados de devolución:
- Integer, devolve o número de oíntes para o evento especificado
Consulta o número de oíntes para o evento especificado do obxecto
1
2Integer EventEmitter.listenerCount(Value o,
String ev);
Parámetros de chamada:
- o: Valor, especifica o obxecto da consulta
- ev: Cadea, especifica o nome do evento
Resultados de devolución:
- Integer, devolve o número de oíntes para o evento especificado
eventNames
Consulta o nome do evento do oínte
1Array EventEmitter.eventNames();
Resultados de devolución:
- Array, devolve unha matriz de nomes de eventos
emit
Activa un evento de forma activa
1
2Boolean EventEmitter.emit(String ev,
...args);
Parámetros de chamada:
- ev: Cadea, nome do evento
- args: ..., os parámetros do evento pasaranse á función de procesamento de eventos
Resultados de devolución:
- Boolean, devolve o estado de activación do evento, devolve verdadeiro se hai un evento de resposta, se non, devolve falso
toString
Devolve a representación en cadea do obxecto. Polo xeral, devólvese "[Obxecto nativo]". O obxecto pódese volver implementar segundo as súas propias características.
1String EventEmitter.toString();
Resultados de devolución:
- String, devolve a representación en cadea do obxecto
toJSON
Devolve unha representación en formato JSON do obxecto, devolvendo xeralmente unha colección de propiedades lexibles definidas polo obxecto.
1Value EventEmitter.toJSON(String key = "");
Parámetros de chamada:
- key: Cadena, non usada
Resultados de devolución:
- Value, devolve un valor que contén JSON serializable