Javascript &引用;“新听众”;事件未触发
我正在尝试一些节点事件代码 下面是基于“newListener”的代码,每次在将侦听器添加到其内部侦听器数组之前,都应该触发该命令,但该命令不能按预期工作 节点版本-v6.11.0Javascript &引用;“新听众”;事件未触发,javascript,node.js,events,node-modules,event-listener,Javascript,Node.js,Events,Node Modules,Event Listener,我正在尝试一些节点事件代码 下面是基于“newListener”的代码,每次在将侦听器添加到其内部侦听器数组之前,都应该触发该命令,但该命令不能按预期工作 节点版本-v6.11.0 var event = require("events"); var events = new event.EventEmitter(); function FunHello(){ console.log("Hello World !!!!!!!!"); } function FunGreet(){
var event = require("events");
var events = new event.EventEmitter();
function FunHello(){
console.log("Hello World !!!!!!!!");
}
function FunGreet(){
console.log("Good Morning !!!!!!!!");
}
events.on("sayHello",FunHello);
events.on("sayHello",FunGreet);
events.addListener("hello",function(){
console.log("hello hello !!!!");
});
/****** newListener is added *********/
events.on("newListener", function (evtName, fn) {
console.log("New Listener: " + evtName);
});
events.emit("sayHello");
console.log("No of listerns for the event sayHello : " + events.listenerCount("sayHello"));
events.emit("hello");
代码在上可用。我认为您面临的问题是,在输出中,您没有获得
newListener
事件的输出。我尝试将newListener
代码块移动到所有其他事件侦听器之上,它给出了所需的输出
代码如下:
var event = require("events");
var events = new event.EventEmitter();
function FunHello(){
console.log("Hello World !!!!!!!!");
}
function FunGreet(){
console.log("Good Morning !!!!!!!!");
}
events.on("newListener", (evtName,fn)=>{
console.log("New Listener: " + evtName);
});
events.on("sayHello",FunHello);
events.on("sayHello",FunGreet);
events.addListener("hello",function(){
console.log("hello hello !!!!");
});
events.emit("sayHello");
console.log("No of listerns for the event sayHello : " + events.listenerCount("sayHello"));
events.emit("hello");
如果您将newListener代码移到其他addListener调用之上,它会工作吗?哦,是的,它会工作。酷。。。。。。。所以它必须在所有事件侦听器之上,对吗?当然,添加侦听器时会触发事件。附加
hello
处理程序时,没有newListener
处理程序。