eventex

0.1.0 • Public • Published

EventEx

An slower but more powerfull EventEmitter implementation. events.EventEmitter are more likely designed for low level system and sometimes hard to use. This module add some more friendly API.

Usage

EventEmitter = require("eventex").EventEmitter
class Parent
    constructor:()->
        @name = "myobj"
    addChild:(child)->
        # we need to maintain the listener so we can remove it later
        child._printChild = this.printChild.bind(this);
        child.on "update",child._printChild
    addChildEx:(child)->
        # no need to maintain listener
        child.listenBy this,"update",printChild
    removeChild:(child)->
        # remove with maintained listener
        child.removeListener "update",child._printChild
    removeChildEx:(child)->
        # remove any listener listen by `this`
        # easy work!
        child.stopListenBy this
    printChild:(child)->
        console.log @name,"child updates:",child.name
    showChilds:()-> 
        console.log(@name);
    
class Child extends EventEmitter
    @id = 0
    constructor:()->
        @name = "child #{Child.id++}"
    update:()->
        @emit "update",this
// old style
 

API

  • compatible with events.EventEmitter except without domain support and force error throw.
  • eventex.EventEmitter.mixin(obj): mixin to an object.
  • instance eventex.EventEmitter.listenBy(who,events,callback) callback will be called with who as the this parameter.
  • instance eventex.EventEmitter.stopListenBy(who)
  • instance eventex.EventEmitter.bubble(childEventEmitter,event,processor) bubble event using processor. processor should return array like ["newEventName",param1,param2...]. if no processor provided, the event will just bubbled as it is.
  • instance eventex.EventEmitter.stopBubble(childEventEmitter,)
  • instance eventex.EventEmitter.stopAllBubble()
  • instance eventex.EventEmitter.destroy() remove all listener on the event emitter, and all bubbles.

Readme

Keywords

Package Sidebar

Install

npm i eventex

Weekly Downloads

11

Version

0.1.0

License

BSD-2-Clause

Last publish

Collaborators

  • nstal