订阅emitter分享,谁有更好的办法?

订阅emitter分享

HarmonyOS
2024-06-11 20:10:35
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
hmogy

线程间实现事件实例:

点击新建或者编辑联系人的时候,点击左侧联系人实现弹窗效果。

过程如下:

1.点击左侧联系人的时候,在推栈之前调用监听方法,进行监听。

sendAccountSubscription(){ 
  let event: emitter.InnerEvent = { 
    eventId: this.emitterId 
  } 
  let eventData: emitter.EventData = { 
    data: { 
      'isAccountants': true 
    } 
  } 
  emitter.emit(event, eventData); 
  this.isSaveCon = -1; 
}

2. 在目标页面调用emitter.on方法监听到之后,执行回调方法。

getSubscription(){ 
  let innerEvent: emitter.InnerEvent = { 
    eventId: this.emitterId 
  }; 
  emitter.once(innerEvent, (eventData: emitter.EventData) => { 
    let isAccountants:boolean = eventData.data!['isAccountants']; 
    HiLog.i(TAG, 'int isAccountants' + JSON.stringify(isAccountants)); 
    if (isAccountants) { 
      this.destinationBackPress(); 
    } 
  }); 
}

3. 回调方法中调用弹框页面,监听结束。

最后调用off方法销毁订阅

分享
微博
QQ
微信
回复
2024-06-12 16:34:53
相关问题
HarmonyOS 事件订阅 emitter问题
436浏览 • 1回复 待解决
谁有办法关闭电池使用时间
5916浏览 • 1回复 待解决
鸿蒙小车出厂固件谁有
6009浏览 • 1回复 待解决
这个iot板子镜像谁有
8081浏览 • 1回复 已解决
taskpool使用 ,谁有方案?
644浏览 • 1回复 待解决
转场动画,谁有方案吗?
510浏览 • 1回复 待解决
关于emitter、eventHub使用场景
2496浏览 • 1回复 待解决
本地收发消息实践,谁有方案?
540浏览 • 1回复 待解决
HarmonyOS emitter 线程切换问题
305浏览 • 1回复 待解决
Emitter与EventHub区别是什么?
344浏览 • 1回复 待解决
分享沙箱文件,应用可分享单个文件
952浏览 • 1回复 待解决
通过emitter实现worker间线程通讯
878浏览 • 1回复 待解决
Emitter如何声明回调函数类型
1716浏览 • 1回复 待解决