Obxecto EventEmitter
EventEmitter é un obxecto desencadeado por eventos, que se pode usar para establecer un patrón de observador, e os obxectos que admiten activados por eventos herdanse deste
Cando se dispara un evento, todos os oíntes asociados con ese evento son chamados de forma asíncrona. Tamén nos permite crear código cun alto grao de personalización e flexibilidade.
As funcións de uso habitual 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')
O código de mostra anterior, cando se executa, o evento de instancia do emisor de eventos escoita primeiro o evento "read_file" e despois activa a operación de ler o ficheiro cando se activa o evento ( ). Cando a lectura teña éxito, activarase o evento 'show_content' e executarase a función que escoita 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 a operación fallida.
Este modo 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;
propiedade estática
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 a un obxecto
1
2Object EventEmitter.on(String ev,
Function func);
Parámetros de chamada:
- ev: Cadea, o nome do evento especificado
- func: Función, especifica a función do controlador de eventos
devolver resultado:
- Object, devolve o propio obxecto do evento, que é conveniente para as chamadas en cadea
Vincular un controlador de eventos a un obxecto
1Object EventEmitter.on(Object map);
Parámetros de chamada:
- map: Obxecto, especifique 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
devolver resultado:
- Object, devolve o propio obxecto do evento, que é conveniente para as chamadas en cadea
addListener
Vincular un controlador de eventos a un obxecto
1
2Object EventEmitter.addListener(String ev,
Function func);
Parámetros de chamada:
- ev: Cadea, o nome do evento especificado
- func: Función, especifica a función do controlador de eventos
devolver resultado:
- Object, devolve o propio obxecto do evento, que é conveniente para as chamadas en cadea
Vincular un controlador de eventos a un obxecto
1Object EventEmitter.addListener(Object map);
Parámetros de chamada:
- map: Obxecto, especifique 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
devolver resultado:
- Object, devolve o propio obxecto do evento, que é conveniente para as chamadas en cadea
prependListener
Vincular unha función de controlador de eventos ao inicio do obxecto
1
2Object EventEmitter.prependListener(String ev,
Function func);
Parámetros de chamada:
- ev: Cadea, o nome do evento especificado
- func: Función, especifica a función do controlador de eventos
devolver resultado:
- Object, devolve o propio obxecto do evento, que é conveniente para as chamadas en cadea
Vincular unha función de controlador de eventos ao inicio do obxecto
1Object EventEmitter.prependListener(Object map);
Parámetros de chamada:
- map: Obxecto, especifique 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
devolver resultado:
- Object, devolve o propio obxecto do evento, que é conveniente para 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, o nome do evento especificado
- func: Función, especifica a función do controlador de eventos
devolver resultado:
- Object, devolve o propio obxecto do evento, que é conveniente para 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, especifique 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
devolver resultado:
- Object, devolve o propio obxecto do evento, que é conveniente para as chamadas en cadea
prependOnceListener
Vincular unha función de controlador de eventos ao inicio do obxecto
1
2Object EventEmitter.prependOnceListener(String ev,
Function func);
Parámetros de chamada:
- ev: Cadea, o nome do evento especificado
- func: Función, especifica a función do controlador de eventos
devolver resultado:
- Object, devolve o propio obxecto do evento, que é conveniente para as chamadas en cadea
Vincular unha función de controlador de eventos ao inicio do obxecto
1Object EventEmitter.prependOnceListener(Object map);
Parámetros de chamada:
- map: Obxecto, especifique 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
devolver resultado:
- Object, devolve o propio obxecto do evento, que é conveniente para as chamadas en cadea
off
anular a función da cola de procesamento de obxectos
1
2Object EventEmitter.off(String ev,
Function func);
Parámetros de chamada:
- ev: Cadea, o nome do evento especificado
- func: Función, especifica a función do controlador de eventos
devolver resultado:
- Object, devolve o propio obxecto do evento, que é conveniente para 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, o nome do evento especificado
devolver resultado:
- Object, devolve o propio obxecto do evento, que é conveniente para as chamadas en cadea
anular a 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.
devolver resultado:
- Object, devolve o propio obxecto do evento, que é conveniente para as chamadas en cadea
removeListener
anular a función da cola de procesamento de obxectos
1
2Object EventEmitter.removeListener(String ev,
Function func);
Parámetros de chamada:
- ev: Cadea, o nome do evento especificado
- func: Función, especifica a función do controlador de eventos
devolver resultado:
- Object, devolve o propio obxecto do evento, que é conveniente para 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, o nome do evento especificado
devolver resultado:
- Object, devolve o propio obxecto do evento, que é conveniente para as chamadas en cadea
anular a 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.
devolver resultado:
- Object, devolve o propio obxecto do evento, que é conveniente para as chamadas en cadea
removeAllListeners
Cancela todos os oíntes para todos os eventos da cola de procesamento de obxectos ou elimina todos os oíntes para o evento especificado se se especifica un evento.
1Object EventEmitter.removeAllListeners(String ev);
Parámetros de chamada:
- ev: Cadea, o nome do evento especificado
devolver resultado:
- Object, devolve o propio obxecto do evento, que é conveniente para as chamadas en cadea
Cancela todos os oíntes para todos os eventos da cola de procesamento de obxectos ou elimina todos os oíntes para o evento especificado se se especifica un evento.
1Object EventEmitter.removeAllListeners(Array evs = []);
Parámetros de chamada:
- evs: Matriz, o nome do evento especificado
devolver resultado:
- Object, devolve o propio obxecto do evento, que é conveniente para 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, especifica o número de eventos
getMaxListeners
Obtén o número limitado predeterminado de oíntes, só para compatibilidade
1Integer EventEmitter.getMaxListeners();
devolver resultado:
- Integer, devolve o número límite predeterminado
listeners
Consulta a matriz de oíntes para o evento especificado do obxecto
1Array EventEmitter.listeners(String ev);
Parámetros de chamada:
- ev: Cadea, o nome do evento especificado
devolver resultado:
- Array, devolve unha matriz de oíntes 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, o nome do evento especificado
devolver resultado:
- 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, o nome do evento especificado
devolver resultado:
- Integer, devolve o número de oíntes para o evento especificado
eventNames
Consulta o nome do evento do oínte
1Array EventEmitter.eventNames();
devolver resultado:
- 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 de eventos, pasaranse á función do controlador de eventos
devolver resultado:
- 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, xeralmente devolve "[Obxecto nativo]", o obxecto pódese reimplementar segundo as súas propias características
1String EventEmitter.toString();
devolver resultado:
- String, devolve unha representación en cadea do obxecto
toJSON
Devolve a representación en formato JSON do obxecto, xeralmente devolve unha colección de propiedades lexibles definidas polo obxecto
1Value EventEmitter.toJSON(String key = "");
Parámetros de chamada:
- key: Cadena, non usada
devolver resultado:
- Value, que devolve un valor serializable por JSON