Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- module.exports = {
- events2: {},
- /**
- * @param {String} event
- * @param {Object} subscriber
- * @param {Function} handler
- */
- on: function (event, subscriber, handler) {
- function vip(){
- return handler.call(subscriber);
- }
- if (Object.keys(this.events2).indexOf(event) < 0) {
- this.events2[event] = [[], []];
- }
- this.events2[event][0].push(subscriber);
- this.events2[event][1].push(vip);
- return this;
- },
- /**
- * @param {String} event
- * @param {Object} subscriber
- */
- off: function (event, subscriber) {
- tt = this.events2[event][0].indexOf(subscriber);
- delete this.events2[event][0][tt];
- delete this.events2[event][1][tt];
- tt = this.events2[event][0].indexOf(subscriber);
- if (tt>-1) {
- delete this.events2[event][0][tt];
- delete this.events2[event][1][tt];
- }
- return this;
- },
- /**
- * @param {String} event
- */
- emit: function (event) {
- for (xx of this.events2[event][1]) {
- if (xx != undefined) {
- xx();
- }
- }
- return this;
- }
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement