关于emitter、eventHub的使用场景

​关于emitter、eventHub的使用场景

HarmonyOS
2024-03-17 12:01:03
浏览
收藏 0
回答 2
回答 2
按赞同
/
按时间
失望的满天星

Emitter主要提供线程间发送和处理事件的能力,包括对持续订阅事件或单次订阅事件的处理、取消订阅事件、发送事件到事件队列等。

步骤一:订阅事件

import { promptAction } from '@kit.ArkUI'; 
import { emitter } from '@kit.BasicServicesKit'; 
 
const TAG: string = 'ThreadModel';
// 定义一个eventId为1的事件 
let event: emitter.InnerEvent = { 
  eventId: 1 
}; 
 
// 收到eventId为1的事件后执行该回调 
let callback = (eventData: emitter.EventData): void => { 
  promptAction.showToast({ 
    message: JSON.stringify(eventData) 
  }); 
}; 
 
// 订阅eventId为1的事件 
emitter.on(event, callback); 
promptAction.showToast({ 
  message: $r('app.string.emitter_subscribe_success_toast') 
});
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.

步骤二:发送事件

import { emitter } from '@kit.BasicServicesKit';
// 定义一个eventId为1的事件,事件优先级为Low 
let event: emitter.InnerEvent = { 
  eventId: 1, 
  priority: emitter.EventPriority.LOW 
}; 
 
let eventData: emitter.EventData = { 
  data: { 
    content: 'c', 
    id: 1, 
    isEmpty: false 
  } 
}; 
 
// 发送eventId为1的事件,事件内容为eventData 
emitter.emit(event, eventData);
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.

-结束

EventHub提供了线程内发送和处理事件的能力,包括对事件订阅、取消订阅、触发事件等。以UIAbility组件与UI之间的数据同步为例,具体使用方法可以参考UIAbility组件与UI的数据同步。

已于2024-3-26 17:23:28修改
分享
微博
QQ
微信
回复
2024-03-17 21:58:16
GeorgeGcs
分享
微博
QQ
微信
回复
2025-03-26 23:10:43


相关问题
HarmonyOS Navigator使用场景
1081浏览 • 1回复 待解决
HarmonyOS AbilityStage使用场景
804浏览 • 1回复 待解决
EmitterEventHub区别是什么?
1756浏览 • 2回复 待解决
napi 基本使用场景示例
2598浏览 • 1回复 待解决
HarmonyOS Navigation和router使用场景
1550浏览 • 2回复 待解决
HAR和HSP使用场景区分
1399浏览 • 1回复 待解决
请问ArkTS中this使用场景是什么?
2702浏览 • 1回复 待解决
ArkGraphics 2D都有哪些使用场景
1642浏览 • 1回复 待解决
HarmonyOS 关于emitter.EventData
907浏览 • 1回复 待解决
HarmonyOS 针对API12:组件使用场景dialog
1045浏览 • 1回复 待解决
HarmonyOS Account账号管理用场景
1168浏览 • 1回复 待解决
HarmonyOS onDidBuild作用和应用场景
993浏览 • 1回复 待解决
TiDB优势?有哪些应用场景
4442浏览 • 1回复 待解决