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); // 监听器中的值 }); }