Event
function Event() {
}
Event.prototype = {
| Option name | Type | Description |
|---|---|---|
| name | string | |
| args |
Publish on channel
publish: function (name, args) {
try {
cache[name] && cache[name].forEach(function (callback) {
callback.apply(args);
});
} catch (err) {
console.warn(err);
}
},
| Option name | Type | Description |
|---|---|---|
| name | string, Array | |
| callback | Function |
Subscribe a callback on a channel
subscribe: function (name, callback) {
var self = this;
if (name.constructor === Array) {
name.forEach(function (n) {
self.subscribe(n, callback);
});
return;
}
if (!cache[name]) {
cache[name] = [];
}
cache[name].push(callback);
return [name, callback];
},
| Option name | Type | Description |
|---|---|---|
| handle |
Unsubscribe
unsubscribe: function (handle) {
var name = handle[0];
cache[name] && cache[name].forEach(function (id) {
if (this == handle[1]) {
cache[name].splice(id, 1);
}
});
}
};
return Event;
})();