Il componente EventEmitter di Node.js
Se hai lavorato con JavaScript nel browser, sai quanto l’interazione dell’utente venga gestita attraverso gli eventi: clic del mouse, pressioni dei tasti della tastiera, reazione agli spostamenti del mouse, e così via.
Dal lato del server, Node.js ci offre la possibilità di costruire un sistema simile utilizzando il modulo events
.
Questo modulo, in particolare, offre la classe EventEmitter
, che useremo per gestire i nostri eventi.
La inizializzi usando:
Questo oggetto espone, tra gli altri, i metodi on
ed emit
.
emit
è usato per innescare un eventoon
è usato per aggiungere una funzione di callback che verrà eseguita quando l’evento viene innescato
Ad esempio, creiamo un evento start
, e a titolo di esempio, reagiamo ad esso semplicemente registrando un messaggio sulla console:
Quando eseguiamo:
la funzione del gestore degli eventi viene innescata, e otteniamo il log sulla console.
Puoi passare gli argomenti al gestore degli eventi passandoli come argomenti aggiuntivi a emit()
:
Con più argomenti:
L’oggetto EventEmitter espone anche diversi altri metodi per interagire con gli eventi, come
once()
: aggiunge un listener per una sola voltaremoveListener()
/off()
: rimuove un listener per un eventoremoveAllListeners()
: rimuove tutti i listener per un evento