Skip to content

Commit a31127d

Browse files
feat(betsy): add new emit async method
1 parent 38e51d5 commit a31127d

File tree

1 file changed

+16
-0
lines changed

1 file changed

+16
-0
lines changed

packages/node_modules/betsy/src/index.ts

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,22 @@ export class EventEmitter<T> {
2424
}
2525
}
2626

27+
emitAsync<K extends keyof T>(event: K, msg: T[K]) {
28+
const listeners = this.events.get(event) || []
29+
30+
setTimeout(() => {
31+
for (let i = listeners.length - 1; i >= 0; i--) {
32+
const listener = listeners[i]
33+
34+
listener.cb(msg)
35+
36+
if (listener.once) {
37+
listeners.splice(i, 1)
38+
}
39+
}
40+
})
41+
}
42+
2743
on<K extends keyof T>(event: K, cb: (msg: T[K]) => void) {
2844
this.addListener(event, cb, false)
2945
}

0 commit comments

Comments
 (0)