21 lines
527 B
TypeScript
21 lines
527 B
TypeScript
import { EventEmitter, once } from 'stream';
|
|
|
|
// 事件
|
|
export const emitter = new EventEmitter();
|
|
|
|
// 异步触发事件 demo
|
|
export const asyncEmit = (emitter: EventEmitter, eventName: string) => {
|
|
return new Promise((resolve) => {
|
|
emitter.once(eventName, (value: any) => resolve(value));
|
|
});
|
|
};
|
|
|
|
async function main() {
|
|
setTimeout(() => {
|
|
emitter.emit('asyncEvent', '监听器中的值');
|
|
}, 1000);
|
|
asyncEmit(emitter, 'asyncEvent').then((result) => {
|
|
console.log(result); // 监听器中的值
|
|
});
|
|
}
|