mirror of
https://github.com/alibaba/lowcode-engine.git
synced 2025-12-12 11:20:11 +00:00
feat(event): add event.prependListener api
This commit is contained in:
parent
942972c593
commit
f7c1f1e716
@ -25,6 +25,19 @@ on(event: string, listener: (...args: any[]) => void): IPublicTypeDisposable;
|
|||||||
```
|
```
|
||||||
相关类型:[IPublicTypeDisposable](https://github.com/alibaba/lowcode-engine/blob/main/packages/types/src/shell/type/disposable.ts)
|
相关类型:[IPublicTypeDisposable](https://github.com/alibaba/lowcode-engine/blob/main/packages/types/src/shell/type/disposable.ts)
|
||||||
|
|
||||||
|
### prependListener
|
||||||
|
监听事件,会在其他回调函数之前执行
|
||||||
|
|
||||||
|
```typescript
|
||||||
|
/**
|
||||||
|
* 监听事件,会在其他回调函数之前执行
|
||||||
|
* @param event 事件名称
|
||||||
|
* @param listener 事件回调
|
||||||
|
*/
|
||||||
|
prependListener(event: string, listener: (...args: any[]) => void): IPublicTypeDisposable;
|
||||||
|
```
|
||||||
|
相关类型:[IPublicTypeDisposable](https://github.com/alibaba/lowcode-engine/blob/main/packages/types/src/shell/type/disposable.ts)
|
||||||
|
|
||||||
### off
|
### off
|
||||||
取消监听事件
|
取消监听事件
|
||||||
|
|
||||||
|
|||||||
@ -55,6 +55,14 @@ export class EventBus implements IEventBus {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
prependListener(event: string, listener: (...args: any[]) => void): () => void {
|
||||||
|
this.eventEmitter.prependListener(event, listener);
|
||||||
|
this.getLogger().debug(`${this.getMsgPrefix('prependListener')} ${event}`);
|
||||||
|
return () => {
|
||||||
|
this.off(event, listener);
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 取消监听事件
|
* 取消监听事件
|
||||||
* @param event 事件名称
|
* @param event 事件名称
|
||||||
|
|||||||
@ -36,6 +36,20 @@ export class Event implements IPublicApiEvent {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 监听事件,会在其他回调函数之前执行
|
||||||
|
* @param event 事件名称
|
||||||
|
* @param listener 事件回调
|
||||||
|
*/
|
||||||
|
prependListener(event: string, listener: (...args: any[]) => void): IPublicTypeDisposable {
|
||||||
|
if (isPluginEventName(event)) {
|
||||||
|
return this[eventBusSymbol].prependListener(event, listener);
|
||||||
|
} else {
|
||||||
|
logger.warn(`fail to prependListener event ${event}, event should have a prefix like 'somePrefix:eventName'`);
|
||||||
|
return () => {};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 取消监听事件
|
* 取消监听事件
|
||||||
* @param event 事件名称
|
* @param event 事件名称
|
||||||
|
|||||||
@ -10,6 +10,13 @@ export interface IPublicApiEvent {
|
|||||||
*/
|
*/
|
||||||
on(event: string, listener: (...args: any[]) => void): IPublicTypeDisposable;
|
on(event: string, listener: (...args: any[]) => void): IPublicTypeDisposable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 监听事件,会在其他回调函数之前执行
|
||||||
|
* add monitor to a event
|
||||||
|
* @param event 事件名称
|
||||||
|
* @param listener 事件回调
|
||||||
|
*/
|
||||||
|
prependListener(event: string, listener: (...args: any[]) => void): IPublicTypeDisposable;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 取消监听事件
|
* 取消监听事件
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user