node.js中的emitter.on方法使用說(shuō)明
方法說(shuō)明:
為指定事件注冊(cè)一個(gè)監(jiān)聽(tīng)器。
語(yǔ)法:
emitter.on(event, listener)
emitter.addListener(event, listener)
接收參數(shù):
event (string) 事件類型
listener (function) 觸發(fā)事件時(shí)的回調(diào)函數(shù)
例子:
server.on('connection', function (stream) {
console.log('someone connected!');
});
源碼:
EventEmitter.prototype.addListener = function(type, listener) {
var m;
if (!util.isFunction(listener))
throw TypeError('listener must be a function');
if (!this._events)
this._events = {};
// To avoid recursion in the case that type === "newListener"! Before
// adding it to the listeners, first emit "newListener".
if (this._events.newListener)
this.emit('newListener', type,
util.isFunction(listener.listener) ?
listener.listener : listener);
if (!this._events[type])
// Optimize the case of one listener. Don't need the extra array object.
this._events[type] = listener;
else if (util.isObject(this._events[type]))
// If we've already got an array, just append.
this._events[type].push(listener);
else
// Adding the second element, need to change to array.
this._events[type] = [this._events[type], listener];
// Check for listener leak
if (util.isObject(this._events[type]) && !this._events[type].warned) {
var m;
if (!util.isUndefined(this._maxListeners)) {
m = this._maxListeners;
} else {
m = EventEmitter.defaultMaxListeners;
}
if (m && m > 0 && this._events[type].length > m) {
this._events[type].warned = true;
console.error('(node) warning: possible EventEmitter memory ' +
'leak detected. %d listeners added. ' +
'Use emitter.setMaxListeners() to increase limit.',
this._events[type].length);
console.trace();
}
}
return this;
};
相關(guān)文章
node+express+ejs制作簡(jiǎn)單頁(yè)面上手指南
本文記錄了使用node+express+ejs制作簡(jiǎn)單頁(yè)面的全過(guò)程,話說(shuō)express+ejs真的是太難了,有種蛋蛋的憂傷~2014-11-11
nodejs爬蟲(chóng)初試superagent和cheerio
這篇文章主要介紹了nodejs爬蟲(chóng)初試superagent和cheerio的相關(guān)知識(shí),非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2018-03-03
node 利用進(jìn)程通信實(shí)現(xiàn)Cluster共享內(nèi)存
本篇文章主要介紹了node 利用進(jìn)程通信實(shí)現(xiàn)Cluster共享內(nèi)存,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-10-10
利用adb shell和node.js實(shí)現(xiàn)抖音搶紅包功能(推薦)
這篇文章主要介紹了利用adb shell和node.js實(shí)現(xiàn)抖音搶紅包功能,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2018-02-02
詳解Express筆記之動(dòng)態(tài)渲染HTML(新手入坑)
這篇文章主要介紹了詳解Express筆記之動(dòng)態(tài)渲染HTML(新手入坑),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-12-12
Node.js?中的?module.exports?與?exports區(qū)別介紹
這篇文章主要介紹了Node.js中的module.exports與exports區(qū)別介紹,每個(gè)模塊中都有module對(duì)象,存放了當(dāng)前模塊相關(guān)的信息,更多相關(guān)內(nèi)容需要的朋友可以參考一下2022-09-09
nodejs制作爬蟲(chóng)實(shí)現(xiàn)批量下載圖片
本文給大家分享的是作者使用nodejs制作爬蟲(chóng)來(lái)爬去圖片并批量下載的全過(guò)程,非常的細(xì)致,有需要的小伙伴可以參考下2017-05-05
Node.js Sequelize如何實(shí)現(xiàn)數(shù)據(jù)庫(kù)的讀寫(xiě)分離
Sequelize是一個(gè)易于使用,支持多SQL方言(dialect)的對(duì)象-關(guān)系映射框架(ORM),這個(gè)庫(kù)完全采用JavaScript開(kāi)發(fā)并且能夠用在Node.JS環(huán)境中。它當(dāng)前支持MySQL, MariaDB, SQLite 和 PostgreSQL 數(shù)據(jù)庫(kù)。在Node.js中,使用 Sequelize操作數(shù)據(jù)庫(kù)時(shí),同樣支持讀寫(xiě)分離。2016-10-10

