HarmonyOS emitter发送的数据中如果包含对象,在订阅回调中无法获取这个对象的属性?

如题:HarmonyOS emitter发送的数据中如果包含对象,在订阅回调中无法获取这个对象的属性?

阅读 434
1 个回答

emitter复杂对象需要@Sendable序列化,而eventHub没有这个限制。

示例参考:

@Sendable
class Sample {
  constructor() {
    this.count = 100;
  }

  printCount() {
    console.info('Print count : ' + this.count);
  }

  count: number;
}

class SelfEventData implements emitter.EventData {
  data: Sample = new Sample();
}

let options: emitter.Options = {
  priority: emitter.EventPriority.HIGH
};

let eventData = new SelfEventData();
emitter.emit("eventId", options, eventData);
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进