1. 程式人生 > >Nodejs入門基礎(events事件模組、事件抽獎demo)

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
                停止抽獎
*/