HarmonyOS 线程通信 事件循环问题

export class Tester  { 
  public u:string=''; 
  public  startTester() { 
    emitter.once("new_model", (eventData) => { 
      this.u=eventData.data!.new_model.mode; 
      Logger.d(TAG,"监听:"+eventData.data!.new_model.mode); 
    }); 
    let task: taskpool.Task = new taskpool.Task(startDetectRP2PWithSessionModel,info); 
    taskpool.execute(task) 
    Logger.d(TAG,"结束"); 
  } 
  @Concurrent 
  function startDetectRP2PWithSessionModel(model: SessionModel){ 
    emitter.emit("new_model", { data: { "new_model": new_model } }); 
  }

打印结果:

结束

监听:RP2P

对JS 异步编程不是很了解,想请问的是emitter.once这种事件监听为什么没有立刻触发?而怎么会是被扔到event loop的队尾执行?想要的是:

监听:RP2P

结束

有办法实现吗?

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

发送事件可以用,【emit(eventId: string, options: Options, data?: EventData): void 发送指定优先级事件】文档如下:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-emitter-V5#emitteremit优先级枚举里面有IMMEDIATE,表示事件被立即投递。

分享
微博
QQ
微信
回复
2024-09-06 15:18:11
相关问题
HarmonyOS事件通信能力解决方案
369浏览 • 1回复 待解决
TaskPool子线程和主线程如何通信
1993浏览 • 1回复 待解决
基于libuv异步库进行线程通信
1552浏览 • 0回复 待解决
TaskPool如何跟主线程进行通信
214浏览 • 1回复 待解决
HarmonyOS线程线程切换问题
151浏览 • 1回复 待解决
HarmonyOS 线程相关问题
136浏览 • 1回复 待解决
HarmonyOS 线程切换问题
140浏览 • 1回复 待解决
HarmonyOS 事件穿透问题
172浏览 • 1回复 待解决
js Fa如何实现线程通信
5222浏览 • 1回复 待解决
公共事件实现跨进程通信
627浏览 • 1回复 待解决
HarmonyOS 键盘事件监听问题
121浏览 • 1回复 待解决
HarmonyOS线程问题
124浏览 • 1回复 待解决
HarmonyOS 经典蓝牙的socket通信问题
93浏览 • 1回复 待解决
HarmonyOS emitter 线程切换问题
153浏览 • 1回复 待解决
fegin 和 docker 通信问题
2507浏览 • 1回复 待解决
HarmonyOS 事件订阅 emitter问题
95浏览 • 1回复 待解决
HarmonyOS 事件独占控制问题
117浏览 • 1回复 待解决
HarmonyOS关于多线程问题
139浏览 • 1回复 待解决
HarmonyOS ArkTS线程安全问题
157浏览 • 1回复 待解决