HarmonyOS 鸿蒙Next:主线程内,使用EventHub和Emitter订阅和发送事件,有什么本质区别吗
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。