Skip to content
master
Go to file
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
src
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

NPM


Build Status Coverage Status


A dead simple event emitter. Diode only has one event.

Diode.listen(callback)
Diode.emit()

It is also small (see API). We found ourselves building something similar to it on several projects and decided it was better to keep it in one place.

Diode is both an event emitter and a decorator that can add event subscription to another object:

var MyData = Diode({
  data: [],
  add: function(record) {
    this.data.push(record)
    this.publish()
  }
})

New instances of Diode

Diode also supports the new operator:

var myDiode = new Diode()

Managing scope

By providing a second argument to listen, callbacks will be executed within a given context:

var emitter = new Diode()

emitter.listen(function() {
  assert.equal(this, 'custom context')
}, 'custom context')

emitter.emit()

API

listen(callback, &scope)

Add a callback. If a second argument is provided, the callback will be executed within that context.

Alias: subscribe.

ignore(callback)

Remove a callback.

Alias: unsubscribe.

emit(...arguments)

Trigger all subscriptions.

Alias: 'publish'


Code At Viget

Visit code.viget.com to see more projects from Viget.

You can’t perform that action at this time.