nodejs之events模块

来源:互联网 发布:gta5fps优化 编辑:程序博客网 时间:2024/05/18 00:51
//导入events模块var events = require("events");//事件:观察者模式var eventEmitter = new events.EventEmitter;//事件监听器//注册事件eventEmitter.on("abc",function () {    console.log("执行事件abc");});eventEmitter.addListener("cba",function () {    console.log("执行事件cba");});eventEmitter.on("hi",function (name) {    console.log("hi" + name);});eventEmitter.once("only",function () {    console.log("执行only");});//触发事件eventEmitter.emit("abc");eventEmitter.emit("abc");eventEmitter.emit("cba");eventEmitter.emit("hi",' 大龙');eventEmitter.emit("only");eventEmitter.emit("only");//移除事件function demo() {    console.log("demo")}eventEmitter.addListener("demo",demo);eventEmitter.emit("demo");eventEmitter.removeListener("demo",demo);//移除后执行,没有响应eventEmitter.emit("demo");//移除所有事件eventEmitter.removeAllListeners("abc");eventEmitter.emit("abc");//设置最大的监听数量eventEmitter.setMaxListeners(2);eventEmitter.on("hello",function () {    console.log("hello");});eventEmitter.on("hello",function () {    console.log("hello2");});eventEmitter.on("hello",function () {    console.log("hello3");});eventEmitter.emit("hello");

events-example(事件例子):

var events = require("events");var util = require("util");//女孩类function Girl() { }//女孩类继承事件类(让女孩具备事件监听的方法)util.inherits(Girl,events);//男生类function Boy(name,callback){    this.name = name;    this.callback = callback;}var boy1 = new Boy("小龙",function () {    console.log("小龙带着锅");});var boy2 = new Boy("小菜",function () {    console.log("小菜带着菜");});var boy3 = new Boy("小三",function () {    console.log("小三带着料");});var girl = new Girl();girl.setMaxListeners(3);girl.on("eat",boy1.callback);girl.on("eat",boy2.callback);girl.addListener("eat",boy3.callback);girl.emit("eat");girl.once("die",function () {    console.log("扑街!");});girl.emit("die");//可以省略EventEmittervar event = new events;event.on("abc",function () {    console.log("执行abc");});event.emit("abc");


0 0
原创粉丝点击