@ohos.events.emitter (Emitter)
本模块提供了在同一进程不同线程间,或同一进程同一线程内,发送和处理事件的能力,包括持续订阅事件、单次订阅事件、取消订阅事件,以及发送事件到事件队列的能力。
说明:
本模块首批接口从API version 7开始支持。后续版本新增接口,采用上角标单独标记接口的起始版本。
标题导入模块
import emitter from '@ohos.events.emitter';
权限列表
无权限要求。
emitter.on
on(event: InnerEvent, callback: Callback<EventData>): void
持续订阅指定的事件,并在接收到该事件时,执行对应的回调处理函数。
系统能力:
SystemCapability.Notification.Emitter
实例:
let innerEvent: emitter.InnerEvent = {
eventId: 1
};
// 收到eventId为1的事件后执行回调函数
emitter.on(innerEvent, () => {
console.info('callback');
});
emitter.off
off(eventId: number): void
取消针对该事件ID的订阅。
系统能力:
SystemCapability.Notification.Emitter
// 取消eventID为1的所有事件回调处理函数
emitter.off(1);
emitter.emit
emit(event: InnerEvent, data?: EventData): void
发送指定的事件。
系统能力:
SystemCapability.Notification.Emitter
参数:
示例:
let eventData: emitter.EventData = {
data: {
"content": "c",
"id": 1,
}
};
let innerEvent: emitter.InnerEvent = {
eventId: 1,
priority: emitter.EventPriority.HIGH
};
emitter.emit(innerEvent, eventData);