nodejs的events模块循环事件

nodejs使用事件驱动模型,当服务器接受到了请求之后,就会关闭这个请求,然后再处理,为的是等待下一个请求。这样,请求就不会被耽搁。这个模型的效率非常高,因为他一直在接受请求,而没有等待任何读写操作。在事件驱动模型中,会生成一个主循环来监听事件,当检测到事件时触发回调函数:
在node中我们常常使用events模块来实现,即首先引入events,然后创建一个对象,利用这个对象的on方法绑定时间,然后利用对象的emit方法来触发事件,利用emit事件触发事件一定要对应。代码如下所示:

varevents = require("events");//引入模块
vareventEmitter =new events.EventEmitter();//创建实例化对象
 //对象方法调用
eventEmitter.on("fun", function () {   
console.log("我是第一个");
});
eventEmitter.on("fun", function () {  
  console.log("我是第二个");
  });
   eventEmitter.on("fun", function () {  
    console.log("我是第三个");
    });
  eventEmitter.on("fun", function () {  
     console.log("我是第四个");});
 eventEmitter.emit("fun");
 console.log("结束了");

EventEmitter 除了on属性还有其他的属性,如下所示:

  1. addListener(event, listener) — 它和on是类似的,都是添加某一个事件的监听器。
  2. removeListener(event, listener) — 即通过此API可以将监听器取消(特定的listener)。
  3. removeAllListeners(event) — 可以取消event下的所有监听器。
  4. newListener(event, listener); — 该事件在添加新的监听器时被触发。
  5. listenerCount(emitter, event); — 返回指定监听器的数量。
  6. listeners(event) — 返回指定事件的监听器数组。

猜你喜欢

转载自blog.csdn.net/weixin_44311876/article/details/89915233