Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »




    This is yet another event emitter implementation for node.js. It is fully compatible (as of version 0.0.5) with the nodejs' EventEmitter API, with some additions (cf. the Differences section below). The main purpose of node-ev is to provide very fast event emission when dealing with a relatively low number of listeners: below 20 listeners, it is faster than EventEmitter, after that, both average out.

    Differences with node's EventEmitter

    • New methods
      • off(event[, listener]): alias to removeListener()
      • addEventListener(event, listener): alias to addListener()
      • emit_myevent([ arg1... ]): alias for emit('myevent'[, arg1... ])
    • New member
      • ev_dedupListener: does not add a listener if already defined for a given event


    var EV = require('ev')
    var ev = new EV({ match: 1 })
    function test (a) {
        console.log('received', a)
    ev.on('match', test)
    ev.emit('match', 'standard emit') // received standard emit 
    ev.emit_match('shortcut emit!') // received shortcut emit! 


    EV(events, flag

    • events (Object): events object listing the possible events to be emitted and their corresponding number of arguments. Note that EV will emit events even though they may not have been set by the constructor but performance will be affected in highly demanding situations.
    • flag (Boolean): indicates whether warnings should be triggered (default=true)
        data: 3
    , end: 1
    , drain: 0

    There are 3 events defined by default:

    • error(Error): if emitted while no listener attached to it, it will throw as per EventEmitter's behavior
    • newListener(event, listener): emitted when a listener is attached to an event
    • oldListener(event, listener): emitted when a listener is removed from an event


    • version (String): EV version
    • ev_dedupListener (Boolean): will not add a listener more than once to the same event if true


    • on(event, listener) (String, Function): add a listener for [event]
    • once(event, listener) (String, Function): add a listener for [event] and remove it once triggered
    • off(event, listener) (String, Function): remove the listener for [event]
    • off(event) (String): remove all listeners for [event]
    • removeAllListeners(event) (String): remove all listeners for [event]
    • removeAllListeners(): remove all listeners for all events
    • emit(event[, arguments]) (String[, Any]): emit [event] with a list of arguments
    • setMaxListeners(max) (Integer): set the maximum number of listeners after which a warning is issued, but the listeners are still added
    • listeners([event]) (String): get the list of listeners for [event] or all listeners for all events




    npm i ev

    Downloadslast 7 days







    last publish


    • avatar