File size: 786 Bytes
bc20498
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import Promise from '../promise';

let define = {

  eventAliasesOn: function( proto ){
    let p = proto;

    p.addListener = p.listen = p.bind = p.on;
    p.unlisten = p.unbind = p.off = p.removeListener;
    p.trigger = p.emit;

    // this is just a wrapper alias of .on()
    p.pon = p.promiseOn = function( events, selector ){
      let self = this;
      let args = Array.prototype.slice.call( arguments, 0 );

      return new Promise( function( resolve, reject ){
        let callback = function( e ){
          self.off.apply( self, offArgs );

          resolve( e );
        };

        let onArgs = args.concat( [ callback ] );
        let offArgs = onArgs.concat( [] );

        self.on.apply( self, onArgs );
      } );
    };
  },

}; // define

export default define;