Nodejs入門基礎(events事件模組、事件抽獎demo)
阿新 • • 發佈:2018-12-11
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 停止抽獎 */