0.1.0 • Published 11 years ago

isg-events v0.1.0

Weekly downloads
10
License
-
Repository
-
Last release
11 years ago

isg-events

0.0.10

install

  • NPM npm install isg-events
  • GIT git clone https://github.com/isglazunov/events.git
  • download from releases

require

Node.js

var Events = require("isg-events");

Browser

<script src="isg-events.js"></script>

define

define(["isg-events"], function(Events){});

Ability to connect with define.amd added, but not tested. If something is wrong, fix it.

usage

It is recommended to use in conjunction with the underscore and async modules.

new Events;

var events = new Events;
var container = _.extend({}, new Events);

events.on(name, callback[, options]);

Available options:

{
    sync: false, // true // asynchronous / synchronous call handler.
    context: this, // this in the handler for the default `container`
    self: false, // true // adds the first argument of `self`
    limit: null // Number // how many times to call the handler
}

Asynchronous event

The following will be called only after a call next.

container.on("action", function(next, arg1, arg2){
    setTimeout(function(){
        console.log("0");
        next();
    }, 50);
});

Synchronous event.

The function next will be called automatically after the call handler.

container.on("action", function(arg1, arg2){
    setTimeout(function(){
        console.log("1");
    }, 100);
}, {sync: true});

Access to the handler.

The handler described below exclude yourself from the list of event handlers immediately after the call.

container.on("action", function(self, next, arg1, arg2){
    self.off();
    setTimeout(function(){
        console.log("2");
        next();
    }, 50);
});

Available attributes of self variable:

{
    index: Number // Personal index of each handler
    off: Function // Short-cut method to the handler could disable itself
    limit: Function // Returns a copy of the options limit
    // If the first argument is a number or null, the option replaces the limit for him
}

events.once(name, callback[, options])

Equivalent to calling: events.on(name, callback, {limit: 1});

events.trigger(name[[, Array arguments], callback];

container.trigger("action", function(){
    console.log("trigger");
}); 

If you call the trigger after the announcement of the above handlers, the console will look like this:

0
2
trigger
1

events.off(query)

Available query attributes:

{
    name: undefined, // String
    callback: undefined, // Function
    sync: undefined, // Boolean
    context: undefined, // any
    self: undefined, // Boolean
    limit: undefined // Number or Null
}

Each specified attribute narrows the scope of the search to detach from the list of handlers.

container.off({
    name: "action"
});

Disable all event handlers "action"

versions

0.0.10

Bigger readme. Some fixes.

0.0.9

The basic functionality.

0.1.0

11 years ago

0.0.12

11 years ago

0.0.10

11 years ago