NodeJS में events Module EventEmitter class provide कराता है जिसका use करके हम NodeJS में events के साथ work करते हैं।

Install events Module
npm install events

Package install हो गया है , इस package को कुछ इस तरह से use करेंगे।

Copy
const EventEmitter = require('events')
const emitter = new EventEmitter()

अब देखते हैं कि इस EventEmitter class में कौन कौन से important methods हैं जिनका use करके events को handle करते हैं।

emitter.addListener()

इस method का use, emit की गयी event को handle करने के लिए किया जाता है। या कह सकते हैं कि event को register करने के लिए किया जाता है , जिसे बाद में register की गयी event को call कर सके। यह method दो arguments को को accept करता है -

  1. event Name
  2. callback function

callback function में ही हम अपना logic लिखते हैं , जब भी कोई event fire / emit होती है।


यह method emitter.on() method का ही alias है। मतलब दोनों में से किसी का भी use कर सकते हैं।

emitter.addListener('test', () => {
  console.log("test event fired");
})


Or

emitter.on('test', () => {
  console.log("test event fired");
})

emitter.emit()

इस method का use, register की गयी event को emit करने के लिए किया जाता है। या कह सकते हैं , कि किसी event को call / fire करने के लिए किया जाता है। emit / register की गयी events उसी order में call होंगी जिस order में उन्हें register किया गया है।


तो जब भी हम कोई event emit / fire करते हैं , तो उस event को emitter.on() या emitter.addListener() method के through handle किया जाता है।

For example , test event को emit करने पर console में "test event fired" print हो जायगा।

Copy Fullscreen Close FullscreenRun
// import event package
const EventEmitter = require("events")
const emitter = new EventEmitter()

// handle event
emitter.addListener('test', () => {
  console.log("test event fired")
})

// fire event
emitter.emit("test")
C:\Users\HP\Desktop\workspace\nodejs>node app.js
test event fired

Passing arguments

आप चाहे तो event emit करते समय कोई argument भी pass कर सकते हैं , वो argument हमें emitter.on() या emitter.addListener() method के callback function में मिल जायगा। जैसा कि आप नीचे example में देख हैं।

Copy Fullscreen Close FullscreenRun
const EventEmitter = require("events")
const emitter = new EventEmitter()

// here we will get an Obect.
emitter.addListener('test', (obj) => {
  console.log(`Hello ! ${obj.name}`)
})

// fire event with an Object.
emitter.emit("test", {name : "learnhindituts"})
C:\Users\HP\Desktop\workspace\nodejs>node app.js
Hello ! learnhindituts

emitter.eventNames()

यह method , current EventEmitter Object पर registered सभी events का एक Array return करता है।

conole.log(emitter.eventNames())

// Output : ['test']

emitter.getMaxListeers()

getMaxListeners() method का use current EventEmitter Object पर maximum event की सख्यां बताता है। by default इसकी value 10 होती है लेकिन आप इसे emitter.setMaxListeners() method के through increase कर सकते हैं।

emitter.removeListener()

emitter.removeListener() method का use किसी event को remove करने के लिए किया जाता है। यह method emitter.off() का alias ही है , दोनों में से किसी भी method का use आप event को detach / remove करने के लिए कर सकते हैं।

emitter.removeListener('test')

Or

emitter.off('test')

emitter.prependListener()

जब भी किसी event listener को on() या addListener() method के through add करते हैं , तो वह listeners के queue में सबसे last में add होंगे। prependListener() method के through register करने पर वह queue में सबसे add होते हैं।

Copy Fullscreen Close FullscreenRun
const EventEmitter = require("events")
const emitter = new EventEmitter()

// add listener.
emitter.addListener('test', (obj) => {
  console.log(`Registered First`)
})

// add same listener.
emitter.addListener('test', () => {
  console.log("Registered Last");
})

// fire event
emitter.emit("test")
C:\Users\HP\Desktop\workspace\nodejs>node app.js
Registered First
Registered Last

अब same listeners में से last में register किये गए listener को prependListener() method के through register करके run करने पर वह सबसे पहले run होगा।

Copy Fullscreen Close FullscreenRun
const EventEmitter = require("events")
const emitter = new EventEmitter()

// add listener.
emitter.addListener('test', (obj) => {
  console.log(`Registered First`)
})

// add same listener using prependListener().
emitter.prependListener('test', () => {
  console.log("Registered Last");
})

// fire event
emitter.emit("test")
C:\Users\HP\Desktop\workspace\nodejs>node app.js
Registered Last
Registered First

I Hope, आपको NodeJS में events module के बारे में अच्छे से समझ आया होगा।

Hey ! I'm Rahul founder of learnhindituts.com. Working in IT industry more than 4.5 years. I love to talk about programming as well as writing technical tutorials and blogs that can help to others .... keep learning :)

Get connected with me - LinkedIn Twitter Instagram Facebook