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