封裝 EmitterUtil類
import { emitter } from '@kit.BasicServicesKit';
export class EmitterUtil{
/**
* 發(fā)送事件
* eventId:事件標(biāo)識
* data:傳遞的數(shù)據(jù)
*/
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事件】發(fā)布事件 –––––––––––––––')
}
/**
* 訂閱事件
*/
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();
使用:
發(fā)布事件:
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']);
})