HarmonyOS 鸿蒙Next:主线程内,使用EventHub和Emitter订阅和发送事件,有什么本质区别吗

发布于 1周前 作者 wuwangju 来自 鸿蒙OS

HarmonyOS 鸿蒙Next:主线程内,使用EventHub和Emitter订阅和发送事件,有什么本质区别吗

开发者文档上的说,Emitter用于同一进程的线程间或线程内的订阅、发送事件。EventHub用于主线程内的订阅、发送事件。

主线程内,使用EventHub和Emitter订阅和发送事件,有什么本质区别吗

2 回复

楼主您好,本质上都是通过发布订阅方式来实现事件的传递。

使用场景的不同,主线程内通信用EventHub,主线程与Worker间通信用Emitter。

使用方式的不同,EventHub仅stage模型可用,通过context直接获取,作用范围与使用的context等价。Emitter在FA与Stage模型都可以用,直接搭配worker就可以。

在HarmonyOS鸿蒙Next中,主线程内使用EventHub和Emitter订阅与发送事件,本质上都是通过发布订阅模式实现事件传递。但二者存在使用场景和方式的区别:

  • EventHub主要用于主线程内的订阅、发送事件,尤其在Stage模型中较为常见,通过context直接获取,其作用范围与context相关。
  • Emitter则提供线程间或线程内的事件发送和处理能力,支持持续订阅、单次订阅、取消订阅及发送事件到事件队列等,使用场景更广泛,不仅限于主线程内。

如果问题依旧没法解决请加我微信,我的微信是itying888。

回到顶部