HarmonyOS 鸿蒙Next emitter和EventHub回调

发布于 1周前 作者 zlyuanteng 最后一次编辑是 5天前 来自 鸿蒙OS

在项目中使用emitter和EventHub,应用从后台到前台,emitter.on会自动回调,代码如下 在A页面监听emitter回调:

aboutToAppear(): void {
//重新加载会话列表
Log.i(TAG, `convListData-6.9`)
let event: emitter.InnerEvent = {
eventide: EventID.REFRESH_CONV_LIST
}
emitter.on(event, (eventData: emitter.EventData) => {
Log.i(TAG, `convListData-7 data:${JSON.stringify(eventData)}}`)
})
}
2 回复
emitter.on 只是监听,没有发送事件也是不会触发的,可以排查一下在哪写的发送事件

HarmonyOS鸿蒙Next中的emitter和EventHub都是用于事件回调的重要机制,但它们在应用场景和功能上有所不同。

emitter主要用于线程间的事件发送和处理,提供了在同一进程不同线程间或同一进程同一线程内发送和处理事件的能力。通过emitter,开发者可以实现持续订阅事件、单次订阅事件、取消订阅事件,以及发送事件到事件队列等功能。这对于需要在不同线程间进行通信的应用场景非常有用。

而EventHub则主要用于线程内的事件发送和处理,包括事件的订阅、取消订阅和触发等。它适用于UIAbility组件与UI之间的数据同步等场景,能够在同一线程内高效地传递和处理事件。

简而言之,emitter更侧重于线程间的通信,而EventHub则更专注于线程内的通信。如果开发者需要在不同线程间进行事件回调,应选择emitter;如果只需要在同一线程内进行事件回调,则EventHub更为合适。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部