2024-11-10 21:12:45 +08:00

22 lines
643 B
TypeScript

import stream from 'stream'; // 默认导入整个模块
const { EventEmitter, once } = stream; // 从中解构出 EventEmitter
// 事件
export const emitter = new EventEmitter();
type EmitterType = typeof emitter;
// 异步触发事件 demo
export const asyncEmit = (emitter: EmitterType, 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); // 监听器中的值
});
}