import EventEmitter from 'eventemitter3';
拓展
1.只触发一次
EventEmitter.prototype.once = function(events,handler){ // no events,get out! if(! events) return; // Ugly,but helps getting the rest of the function // short and simple to the eye ... I guess... if(!(events instanceof Array)) events = [events]; var _this = this; var cb = function(){ events.forEach(function(e){ // This only removes the listener itself // from all the events that are listening to it // i.e.,does not remove other listeners to the same event! _this.removeListener(e,cb); }); // This will allow any args you put in xxx.emit('event',...) to be sent // to your handler handler.apply(_this,Array.prototype.slice.call(arguments,0)); }; events.forEach(function(e){ _this.addListener(e,cb); }); };