Skip to content

Commit d66d58f

Browse files
committed
Await for emit
1 parent 15f87ce commit d66d58f

1 file changed

Lines changed: 23 additions & 0 deletions

File tree

‎JavaScript/9-emit.js‎

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
'use stict';
2+
3+
const EventEmitter = require('node:events');
4+
const { setTimeout } = require('node:timers/promises');
5+
6+
const emit = async (ee, name, ...args) => {
7+
const listeners = ee.listeners(name);
8+
const promises = listeners.map((f) => f(...args));
9+
return await Promise.all(promises);
10+
};
11+
12+
const main = async () => {
13+
const ee = new EventEmitter();
14+
ee.on('name', async (data) => {
15+
console.log('Enter event: name', data);
16+
await setTimeout(1000);
17+
console.log('Exit event: name');
18+
});
19+
await emit(ee, 'name', { value: 1 });
20+
console.log('Done');
21+
};
22+
23+
main();

0 commit comments

Comments
 (0)