Le contraire de .on()
est .removeListener()
parce .on()
est tout simplement un alias pour .addListener()
. Pourquoi ils ont ajouté .on()
comme un alias, mais n'a pas ajouté .off()
comme un alias aussi, je ne sais pas vraiment (semble logique pour moi). Mais, pour pouvoir supprimer un seul écouteur avec removeListener()
, vous avez besoin d'une référence de fonction pour la fonction que vous avez jointe à l'origine. Donc, vous devez enregistrer que:
cluster.on('fork', worker => {
function msgHandler(msg) {
// process message
}
// add event handler
worker.on('message', msgHandler);
// then, sometime later, to remove the event handler
worker.removeListener('message', msgHandler);
});
Si vous voulez juste pour supprimer tous les écouteurs d'événements pour un événement donné, vous ne devez pas enregistrer l'ancienne référence de fonction:
cluster.on('fork', worker => {
worker.on('message', msg => {// Do something...})
// some time later, remove all listeners for a particular message
worker.removeAllListeners('message');
});
réponse connexes : What is the difference between addListener(event, listener) and on(event, listener) method in node.js?
@anshulkoka - Est-ce que je peux répondre à cette question? Si oui, vous pouvez l'indiquer à la communauté en cliquant sur la coche verte à gauche de la réponse et cela vous rapportera également des points de réputation. – jfriend00