ObjectEventEmitter
EventEmitter è un oggetto di attivazione di eventi, che può essere utilizzato per stabilire il modello dell'osservatore. Gli oggetti che supportano l'attivazione di eventi ereditano tutti da questo
Quando viene attivato un evento, tutti i listener associati all'evento vengono chiamati in modo asincrono. Ci consente inoltre di creare codice altamente personalizzabile e flessibile.
Le funzioni comunemente usate includono: addListener/on, once,removeListener/off,removeAllListeners ed emit.
Ecco un codice di esempio:
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')
Quando viene eseguito il codice di esempio riportato sopra, l'evento dell'istanza dell'emettitore di eventi ascolta prima l'evento 'read_file' e quindi attiva l'operazione di lettura del file quando l'evento viene attivato ( ). Quando la lettura ha esito positivo, verrà attivato l'evento "show_content". A questo punto, la funzione che ha ascoltato l'evento "show_content" verrà eseguita e verrà visualizzato il contenuto del file. Se si verifica un errore durante la lettura del file, viene attivato l'evento 'errore' e viene gestito il fallimento dell'operazione.
Questo modello presenta grandi vantaggi negli scenari aziendali che trattano operazioni asincrone.
rapporto ereditario
Costruttore
EventEmitter
Costruttore
1new EventEmitter();
oggetto
oggetto di attivazione dell'evento
1EventEmitter new EventEmitter;
proprietà statiche
defaultMaxListeners
Intero, il numero massimo globale predefinito di ascoltatori
1static Integer EventEmitter.defaultMaxListeners;
funzione membro
on
Associa un gestore eventi all'oggetto
1
2Object EventEmitter.on(String ev,
Function func);
Parametri di chiamata:
- ev: String, specifica il nome dell'evento
- func: Funzione, specifica la funzione di elaborazione dell'evento
Risultati restituiti:
- Object, restituisce l'oggetto evento stesso per facilitare le chiamate a catena
Associa un gestore eventi all'oggetto
1Object EventEmitter.on(Object map);
Parametri di chiamata:
- map: Oggetto, specifica la relazione di mappatura degli eventi, il nome dell'attributo dell'oggetto verrà utilizzato come nome dell'evento e il valore dell'attributo verrà utilizzato come funzione di elaborazione dell'evento
Risultati restituiti:
- Object, restituisce l'oggetto evento stesso per facilitare le chiamate a catena
addListener
Associa un gestore eventi all'oggetto
1
2Object EventEmitter.addListener(String ev,
Function func);
Parametri di chiamata:
- ev: String, specifica il nome dell'evento
- func: Funzione, specifica la funzione di elaborazione dell'evento
Risultati restituiti:
- Object, restituisce l'oggetto evento stesso per facilitare le chiamate a catena
Associa un gestore eventi all'oggetto
1Object EventEmitter.addListener(Object map);
Parametri di chiamata:
- map: Oggetto, specifica la relazione di mappatura degli eventi, il nome dell'attributo dell'oggetto verrà utilizzato come nome dell'evento e il valore dell'attributo verrà utilizzato come funzione di elaborazione dell'evento
Risultati restituiti:
- Object, restituisce l'oggetto evento stesso per facilitare le chiamate a catena
prependListener
Associa un gestore eventi all'origine dell'oggetto
1
2Object EventEmitter.prependListener(String ev,
Function func);
Parametri di chiamata:
- ev: String, specifica il nome dell'evento
- func: Funzione, specifica la funzione di elaborazione dell'evento
Risultati restituiti:
- Object, restituisce l'oggetto evento stesso per facilitare le chiamate a catena
Associa un gestore eventi all'origine dell'oggetto
1Object EventEmitter.prependListener(Object map);
Parametri di chiamata:
- map: Oggetto, specifica la relazione di mappatura degli eventi, il nome dell'attributo dell'oggetto verrà utilizzato come nome dell'evento e il valore dell'attributo verrà utilizzato come funzione di elaborazione dell'evento
Risultati restituiti:
- Object, restituisce l'oggetto evento stesso per facilitare le chiamate a catena
once
Associa un gestore di eventi monouso all'oggetto. Il gestore di eventi monouso verrà attivato solo una volta.
1
2Object EventEmitter.once(String ev,
Function func);
Parametri di chiamata:
- ev: String, specifica il nome dell'evento
- func: Funzione, specifica la funzione di elaborazione dell'evento
Risultati restituiti:
- Object, restituisce l'oggetto evento stesso per facilitare le chiamate a catena
Associa un gestore di eventi monouso all'oggetto. Il gestore di eventi monouso verrà attivato solo una volta.
1Object EventEmitter.once(Object map);
Parametri di chiamata:
- map: Oggetto, specifica la relazione di mappatura degli eventi, il nome dell'attributo dell'oggetto verrà utilizzato come nome dell'evento e il valore dell'attributo verrà utilizzato come funzione di elaborazione dell'evento
Risultati restituiti:
- Object, restituisce l'oggetto evento stesso per facilitare le chiamate a catena
prependOnceListener
Associa un gestore eventi all'origine dell'oggetto
1
2Object EventEmitter.prependOnceListener(String ev,
Function func);
Parametri di chiamata:
- ev: String, specifica il nome dell'evento
- func: Funzione, specifica la funzione di elaborazione dell'evento
Risultati restituiti:
- Object, restituisce l'oggetto evento stesso per facilitare le chiamate a catena
Associa un gestore eventi all'origine dell'oggetto
1Object EventEmitter.prependOnceListener(Object map);
Parametri di chiamata:
- map: Oggetto, specifica la relazione di mappatura degli eventi, il nome dell'attributo dell'oggetto verrà utilizzato come nome dell'evento e il valore dell'attributo verrà utilizzato come funzione di elaborazione dell'evento
Risultati restituiti:
- Object, restituisce l'oggetto evento stesso per facilitare le chiamate a catena
off
Annullare l'assegnazione di una funzione dalla coda di elaborazione degli oggetti
1
2Object EventEmitter.off(String ev,
Function func);
Parametri di chiamata:
- ev: String, specifica il nome dell'evento
- func: Funzione, specifica la funzione di elaborazione dell'evento
Risultati restituiti:
- Object, restituisce l'oggetto evento stesso per facilitare le chiamate a catena
Annulla tutte le funzioni nella coda di elaborazione degli oggetti
1Object EventEmitter.off(String ev);
Parametri di chiamata:
- ev: String, specifica il nome dell'evento
Risultati restituiti:
- Object, restituisce l'oggetto evento stesso per facilitare le chiamate a catena
Annullare l'assegnazione di una funzione dalla coda di elaborazione degli oggetti
1Object EventEmitter.off(Object map);
Parametri di chiamata:
- map: Oggetto, specifica la relazione di mappatura degli eventi, il nome dell'attributo dell'oggetto viene utilizzato come nome dell'evento e il valore dell'attributo viene utilizzato come funzione di elaborazione dell'evento
Risultati restituiti:
- Object, restituisce l'oggetto evento stesso per facilitare le chiamate a catena
removeListener
Annullare l'assegnazione di una funzione dalla coda di elaborazione degli oggetti
1
2Object EventEmitter.removeListener(String ev,
Function func);
Parametri di chiamata:
- ev: String, specifica il nome dell'evento
- func: Funzione, specifica la funzione di elaborazione dell'evento
Risultati restituiti:
- Object, restituisce l'oggetto evento stesso per facilitare le chiamate a catena
Annulla tutte le funzioni nella coda di elaborazione degli oggetti
1Object EventEmitter.removeListener(String ev);
Parametri di chiamata:
- ev: String, specifica il nome dell'evento
Risultati restituiti:
- Object, restituisce l'oggetto evento stesso per facilitare le chiamate a catena
Annullare l'assegnazione di una funzione dalla coda di elaborazione degli oggetti
1Object EventEmitter.removeListener(Object map);
Parametri di chiamata:
- map: Oggetto, specifica la relazione di mappatura degli eventi, il nome dell'attributo dell'oggetto viene utilizzato come nome dell'evento e il valore dell'attributo viene utilizzato come funzione di elaborazione dell'evento
Risultati restituiti:
- Object, restituisce l'oggetto evento stesso per facilitare le chiamate a catena
removeAllListeners
Annulla tutti i listener per tutti gli eventi dalla coda di elaborazione dell'oggetto. Se viene specificato un evento, rimuove tutti i listener per l'evento specificato.
1Object EventEmitter.removeAllListeners(String ev);
Parametri di chiamata:
- ev: String, specifica il nome dell'evento
Risultati restituiti:
- Object, restituisce l'oggetto evento stesso per facilitare le chiamate a catena
Annulla tutti i listener per tutti gli eventi dalla coda di elaborazione dell'oggetto. Se viene specificato un evento, rimuove tutti i listener per l'evento specificato.
1Object EventEmitter.removeAllListeners(Array evs = []);
Parametri di chiamata:
- evs: Array, specifica il nome dell'evento
Risultati restituiti:
- Object, restituisce l'oggetto evento stesso per facilitare le chiamate a catena
setMaxListeners
Il limite predefinito sul numero di ascoltatori, solo per compatibilità
1EventEmitter.setMaxListeners(Integer n);
Parametri di chiamata:
- n: Numero intero, specifica il numero di eventi
getMaxListeners
Ottiene il numero limite predefinito di ascoltatori, solo per compatibilità
1Integer EventEmitter.getMaxListeners();
Risultati restituiti:
- Integer, restituisce la quantità limite predefinita
listeners
Interroga l'array del listener per l'evento specificato dell'oggetto
1Array EventEmitter.listeners(String ev);
Parametri di chiamata:
- ev: String, specifica il nome dell'evento
Risultati restituiti:
- Array, restituisce l'array del listener per l'evento specificato
listenerCount
Interroga il numero di ascoltatori per l'evento specificato dell'oggetto
1Integer EventEmitter.listenerCount(String ev);
Parametri di chiamata:
- ev: String, specifica il nome dell'evento
Risultati restituiti:
- Integer, restituisce il numero di ascoltatori per l'evento specificato
Interroga il numero di ascoltatori per l'evento specificato dell'oggetto
1
2Integer EventEmitter.listenerCount(Value o,
String ev);
Parametri di chiamata:
- o: Valore, specifica l'oggetto della query
- ev: String, specifica il nome dell'evento
Risultati restituiti:
- Integer, restituisce il numero di ascoltatori per l'evento specificato
eventNames
Interroga il nome dell'evento del listener
1Array EventEmitter.eventNames();
Risultati restituiti:
- Array, restituisce una matrice di nomi di eventi
emit
Attiva attivamente un evento
1
2Boolean EventEmitter.emit(String ev,
...args);
Parametri di chiamata:
- ev: stringa, nome dell'evento
- args: ..., i parametri dell'evento verranno passati alla funzione di elaborazione degli eventi
Risultati restituiti:
- Boolean, restituisce lo stato di attivazione dell'evento, restituisce true se è presente un evento di risposta, altrimenti restituisce false
toString
Restituisce la rappresentazione in formato stringa dell'oggetto. Generalmente viene restituito "[Oggetto nativo]". L'oggetto può essere reimplementato in base alle proprie caratteristiche.
1String EventEmitter.toString();
Risultati restituiti:
- String, restituisce la rappresentazione di stringa dell'oggetto
toJSON
Restituisce una rappresentazione in formato JSON dell'oggetto, generalmente restituendo una raccolta di proprietà leggibili definite dall'oggetto.
1Value EventEmitter.toJSON(String key = "");
Parametri di chiamata:
- key: Stringa, non utilizzata
Risultati restituiti:
- Value, restituisce un valore contenente JSON serializzabile