封装 EmitterUtil类
import { emitter } from '@kit.BasicServicesKit';
export class EmitterUtil{
/**
* 发送事件
* eventId:事件标识
* data:传递的数据
*/
static publicEmitter(eventId:number,data: object){
let event:emitter.InnerEvent = {
eventId:eventId,
priority:emitter.EventPriority.LOW
}
let eventData:emitter.EventData = {
data:data
}
emitter.emit(event,eventData)
console.log('––––––––––––––– 【Emitter事件】发布事件 –––––––––––––––')
}
/**
* 订阅事件
*/
static emitter(eventId:number,callback:(eventData:object)=>void){
// 定义一个eventId为1的事件
let event: emitter.InnerEvent = {
eventId: eventId
};
emitter.on(event,(eventData:emitter.EventData)=>{
callback(eventData.data!)
console.log('––––––––––––––– 【Emitter事件】订阅事件 ––––––––––––––– \n data:'+eventData.data!)
})
}
}
export default new EmitterUtil();
使用:
发布事件:
import {EmitterUtil} from '../../utils/EmitterUtil';
let eventData = new Object({
key:value
})
EmitterUtil.publicEmitter(1,eventData)
订阅事件
import {EmitterUtil} from '../../utils/EmitterUtil';
// 订阅Emitter事件
EmitterUtil.emitter(1,(data:object)=>{
console.log('––––––––––––––– 【Emitter事件】成功–––––––––––––––')
console.log(data['key']);
})
网友评论