Nodejs入门基础(events事件模块、事件抽奖demo)

events,用于声明事件调用,无需打包

events1.js基本事件调用介绍

 

var events=require("events");//导events包
var eventsEmitter=new events.EventEmitter();//实例化events模块

/*demo1  events事件*/
eventsEmitter.addListener("haoge",function(){//自定义一个事件,事件的名字叫haoge,里面输出一句话
   console.log("豪哥爱玲姐");
});

eventsEmitter.emit("haoge");//触发上面的事件


/*demo1 后台运行结果:豪哥爱玲姐*/


/*知识点*/
eventEmitter.setMaxListeners(10);//设置事件数量
console.log(eventEmitter.listenerCount("haoge"));//查看haoge绑定了多少个事件

eventsEmitter.addListener("haoge2",cn);//声明一个带参数的事件

function cn(a){//带参数的方法
   console.log("test被调用"+a);
}

eventsEmitter.emit("haoge2",cn(200));//调用事件并传值

eventsEmitter.removeListener("haoge2",cn);//移除事件,后面带参值移除一个
// 可以eventEmitter.removeListener("OnJW")移除全部




events2choujiang.js 抽奖demo

 

var events = require("events");//导包
var eventEmitter = new events.EventEmitter();//实例化

/*抽奖demo*/

var ids=0;//声明变量用于计算次数和价格
var timer = setInterval(function () {//定时函数
    var random = parseInt(Math.random() * 100);//获取一个随机数
    ids++;//每次加一
    if (random>=95){//判断条件大于95
        console.log("奖金100,已抽"+ids+"次,已花费"+ids*10+"元");//提示中奖信息并输出信息
        eventEmitter.emit("jieshu");//调用事件
    }
});

eventEmitter.on("jieshu",function () {//自定义事件
   clearInterval(timer);//结束方法
   console.log("停止抽奖");
});

/*demo输出结果:奖金100,已抽59次,已花费590
                停止抽奖
*/


猜你喜欢

转载自blog.csdn.net/JayVergil/article/details/83352961