從零開始學習Node.js系列教程六:EventEmitter發(fā)送和接收事件的方法示例
更新時間:2017年04月13日 14:15:49 作者:MIN飛翔
這篇文章主要介紹了Node.js EventEmitter發(fā)送和接收事件的方法,結合實例形式分析了EventEmitter發(fā)送和接收事件的原理、實現方法與相關操作技巧,需要的朋友可以參考下
本文實例講述了Node.js EventEmitter發(fā)送和接收事件的方法。分享給大家供大家參考,具體如下:
pulser.js
/* EventEmitter發(fā)送和接收事件 HTTPServer和HTTPClient類,它們都繼承自EventEmitter EventEmitter被定義在Node的事件(events)模塊中,直接使用EventEmitter類需要先聲明require('events'), 否則不必顯式聲明require('events'),因為Node中很多對象都無需你調用require('events')就會使用EventEmitter */ var events = require('events'); var util = require('util'); function Pulser(){ events.EventEmitter.call(this); } util.inherits(Pulser, events.EventEmitter); Pulser.prototype.start = function(){ var self = this; this.id = setInterval(function(){ util.log('>>>>pulse'); self.emit('pulse'); util.log('<<<<pulse'); }, 1000); } //定義了一個類Pulser,該類(通過util.inherits)繼承自EventEmitter,它的作用是每隔一秒鐘向所有監(jiān)聽器發(fā)送一個定時事件。 //start方法使用了setInterval這個函數來定期重復執(zhí)行回調函數,并調用emit方法將pulse事件發(fā)送給每一個監(jiān)聽器 //使用Pulser對象 /* 創(chuàng)建了一個Pulser對象并處理其pulse事件,執(zhí)行pulser.on('pulse'..)為pulse事件和回調函數建立聯(lián)系 */ var pulser = new Pulser(); pulser.on('pulse', function(){ util.log('pulse received'); }); pulser.start(); //對象使用emit函數發(fā)送事件,所有注冊到對應事件的監(jiān)聽器都可以收到事件; //通過調用.on方法注冊監(jiān)聽器,參數是事件名,并用一個回調函數接收事件 //通常來說,有一些數據需要伴隨著事件同時發(fā)送 self.emit('eventName', data1, data2, ..); //emitter.on('eventName', function(data1, data2,..){ //接收到事件后的操作 // });
每秒輸出一次
希望本文所述對大家nodejs程序設計有所幫助。
相關文章
Node.js中使用socket創(chuàng)建私聊和公聊聊天室
這篇文章主要介紹了Node.js中使用socket創(chuàng)建私聊和公聊聊天室的相關資料,需要的朋友可以參考下2015-11-11node連接MongoDB數據庫錯誤:MongoServerSelectionError:?connect?ECON
使用node連接MongoDB數據庫時發(fā)生報錯,MongoServerSelectionError:?connect?ECONNREFUSED?::1:27017,本文給大家分享原因分析及解決方案,感興趣的朋友跟隨小編一起看看吧2023-04-04Node.js中環(huán)境變量process.env的一些事詳解
這篇文章主要給大家介紹了關于Node.js中環(huán)境變量process.env的一些事,文中通過示例代碼介紹的非常詳細,對大家學習或者使用node.js具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧。2017-10-10