简单的事件发送功能,支持 TS 定义,在使用前定义好事件的类型以及监听函数的参数和返回值类型
- 基础的事件功能
- 支持定义事件名称和监听函数类型
- 暂无
基本结构
classDiagram
class EventEmitter {
+ addListener(action: string, handle: Function) void
+ addOnceListener(action: string, handle: Function) void
+ removeListener(action: string, handle: Function) void
+ clear(action?: string) void
+ emit(...args: any[]) HandleResult[]
}
class HandleResult {
+ result: any
+ error: any
}
基础用法
import { EventEmitter } from '@itharbors/event';
const emitter = new EventEmitter<{
test: {
params: [number, number];
result: number;
};
}>();
emitter.addListener('test', (a, b) => {
console.log(a, b);
return a + b;
});
emitter.emit('test-a', 1, 2);
- emit 只处理同步逻辑
- 有可能需要处理异步,但是也有可能触发异步函数后,不需要处理,所以这里留给调用者处理
- 某个处理函数执行失败
- 描述
- 执行 handle 队列的时候,某个函数报错
- 处理
- 记录当前报错的 error
- 继续后续函数执行
- 描述
- 暂无
- 暂无