Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

async-events-listener

cevio161.0.2

async-events-listener

readme

Async EventsEmitter

Fork from offical events module

Async

change normal events by using async handler.

Example

Sourtce Code:

const a = new EventEmitter();
a.on('aaa', async () => {
    console.log('start:', '1 = ', 'aaa', '->', new Date().getTime());
    await new Promise(resolve => setTimeout(resolve, 3000));
    console.log('end:', '1 = ', 'aaa', '->', new Date().getTime());
});
a.on('aaa', async () => {
    console.log('start:', '2 = ', 'aaa', '->', new Date().getTime());
    await new Promise(resolve => setTimeout(resolve, 3000));
    console.log('end:', '2 = ', 'aaa', '->', new Date().getTime());
});
a.on('aaa', async () => {
    console.log('start:', '3 = ', 'aaa', '->', new Date().getTime());
    await new Promise(resolve => setTimeout(resolve, 3000));
    console.log('end:', '3 = ', 'aaa', '->', new Date().getTime());
});

(async () => {
    await a.emit('aaa');
    console.log('all done');
})();

Output:

/**
 * @output:
 * start: 1 =  aaa -> 1487673861652
 * end: 1 =  aaa -> 1487673864656
 * start: 2 =  aaa -> 1487673864657
 * end: 2 =  aaa -> 1487673867663
 * start: 3 =  aaa -> 1487673867663
 * end: 3 =  aaa -> 1487673870664
 * all done
 *
 */