Adarsh Trivedi
Adarsh Trivedi

Reputation: 582

Pass parameter to EventEmitter.on method in node.js

I have just started exploring node.js and below is situation with me while learning events handling in node.js.

I have an event 'loop' and a function 'myLoopHandler' attached to it using the method

eventEmitter.on('loop',myLoopHandler);

And the myLoopHandler is defined as follows:

var myLoopHandler = function(){
for(i=1;i<=30;i++)
    console.log(i);
}

And then I emit the event 'loop' :

eventEmitter.emit('loop');

How do I pass some parameter to the myLoopHandler function in eventEmitter.on method?

I am open to any other way of achieving the same.

Upvotes: 13

Views: 16538

Answers (1)

marvel308
marvel308

Reputation: 10458

just do

emitter.emit(eventName[, ...args])

where args is the arguments to emit

this is an example

const myEmitter = new MyEmitter();
myEmitter.on('event', function(a, b) {
  console.log(a, b, this);
  // Prints:
  //   a b MyEmitter {
  //     domain: null,
  //     _events: { event: [Function] },
  //     _eventsCount: 1,
  //     _maxListeners: undefined }
});
myEmitter.emit('event', 'a', 'b');

source NodeJS docs

Upvotes: 25

Related Questions