默认不增强事件,避免事件性能开销

This commit is contained in:
YHH
2025-09-26 10:28:00 +08:00
parent cf9ea495d0
commit 5e052a7e7d
2 changed files with 30 additions and 31 deletions

View File

@@ -41,36 +41,36 @@ export class EventBus implements IEventBus {
* 发射事件
* @param eventType 事件类型
* @param data 事件数据
* @param enhance 是否增强事件数据添加timestamp、eventId等默认false提升性能
*/
public emit<T>(eventType: string, data: T): void {
public emit<T>(eventType: string, data: T, enhance: boolean = false): void {
this.validateEventType(eventType);
// 增强事件数据
const enhancedData = this.enhanceEventData(eventType, data);
const finalData = enhance ? this.enhanceEventData(eventType, data) : data;
if (this.isDebugMode) {
EventBus._logger.info(`发射事件: ${eventType}`, enhancedData);
EventBus._logger.info(`发射事件: ${eventType}`, finalData);
}
this.eventSystem.emitSync(eventType, enhancedData);
this.eventSystem.emitSync(eventType, finalData);
}
/**
* 异步发射事件
* @param eventType 事件类型
* @param data 事件数据
* @param enhance 是否增强事件数据添加timestamp、eventId等默认false提升性能
*/
public async emitAsync<T>(eventType: string, data: T): Promise<void> {
public async emitAsync<T>(eventType: string, data: T, enhance: boolean = false): Promise<void> {
this.validateEventType(eventType);
// 增强事件数据
const enhancedData = this.enhanceEventData(eventType, data);
const finalData = enhance ? this.enhanceEventData(eventType, data) : data;
if (this.isDebugMode) {
EventBus._logger.info(`发射异步事件: ${eventType}`, enhancedData);
EventBus._logger.info(`发射异步事件: ${eventType}`, finalData);
}
await this.eventSystem.emit(eventType, enhancedData);
await this.eventSystem.emit(eventType, finalData);
}
/**
@@ -375,16 +375,15 @@ export class EventBus implements IEventBus {
// 私有方法
/**
* 验证事件类型
* 验证事件类型仅在debug模式下执行提升性能
* @param eventType 事件类型
*/
private validateEventType(eventType: string): void {
// 只在debug模式下进行验证提升生产环境性能
if (this.isDebugMode) {
if (!EventTypeValidator.isValid(eventType)) {
if (this.isDebugMode) {
EventBus._logger.warn(`未知事件类型: ${eventType}`);
}
// 在调试模式下添加自定义事件类型
if (this.isDebugMode) {
EventTypeValidator.addCustomType(eventType);
}
}

View File

@@ -273,7 +273,7 @@ describe('EventBus - 事件总线测试', () => {
timestamp: Date.now()
};
eventBus.emitEntityCreated(entityData);
eventBus.emit(ECSEventType.ENTITY_CREATED, entityData, true);
expect(receivedData).not.toBeNull();
expect(receivedData!.entityId).toBe(1);
@@ -370,7 +370,7 @@ describe('EventBus - 事件总线测试', () => {
});
const originalData = { message: 'test' };
eventBus.emit('enhanced:event', originalData);
eventBus.emit('enhanced:event', originalData, true);
expect(receivedData.message).toBe('test');
expect(receivedData.timestamp).toBeDefined();