当前位置: 首页 > news >正文

【HarmonyOS 4.0】@ohos.events.emitter (Emitter)

  1. B页面需要感知到A页面的点击事件,进而触发B页面的刷新逻辑,类似这种公共的事件通知,就可通过 emitter 来实现。
  1. 导入 emitter 模块
  1. 发布和订阅都需要导入 emitter 模块。
  2. import emitter from '@ohos.events.emitter'
  1. emitter.emit
  1. 发送一个事件到事件队列。发送自定义事件。
  2. emitter.emit(event: InnerEvent 1 , data?: EventData 2 ): void
emitter.emit({eventId: 1,priority: emitter.EventPriority.IMMEDIATE
})
  1. emitter.on
  1. 持续订阅某个事件以及接收事件的回调处理。订阅自定义事件。
  2. emitter.on(event: InnerEvent 1 , callback: Callback): void
@State postInfoList: Array<PostInfo> = [new PostInfo(this.init_post)]
@StorageProp('token') @Watch('onTokenChange') token: string = ''
@State page: number = 1
@State total: number = 0async getPostInfoPage() {let response = await getAllPost({page: this.page,size: 10})response.records.forEach(item => {this.postInfoList.push(item)})this.total = response.totalthis.page += 1
}refresh() {this.postInfoList = []this.total = 0this.page = 1this.getPostInfoPage()
}aboutToAppear(): void {if (this.token) {this.getPostInfoPage()}emitter.on({ eventId: 1 }, () => {this.refresh()})
}onTokenChange() {if (this.token) {this.getPostInfoPage()} else {this.postInfoList = []this.total = 0this.page = 1}
}
  1. emitter.once
  1. 单次订阅某个事件以及接收事件的回调处理,接收到回调处理后自动取消订阅。
  2. emitter.once(event: InnerEvent 1 , callback: Callback): void
  1. emitter.off
  1. 取消订阅某个事件。
  2. emitter.off(eventId: number): void

  1. InnerEvent 进程内的自定义事件对象。
    {
    eventId: number, 事件的ID,由开发者定义用来辨别事件。
    priority: emitter.EventPriority 3
    } ↩︎ ↩︎ ↩︎

  2. EventData 发送事件时传递的数据。类型为 [key: string]: any。 ↩︎

  3. EventPriority 用于表示事件被投递的优先级。
    IMMEDIATE(0):表示事件被立即投递。
    HIGH(1):表示事件先于LOW优先级投递。
    LOW(2):表示事件优于IDLE优先级投递,事件的默认优先级是LOW。
    IDLE(3):表示在没有其他事件的情况下,才投递该事件。 ↩︎

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 在 Qt Creator 中,输入 /** 并按下Enter可以自动生成 Doxygen 风格的注释
  • C语言:刷题日志(1)
  • 汇编:嵌入式软件架构学习资源
  • 测试基础|记一次CPU冲高的排查过程!
  • WSL 下的 CentOS 装 Docker
  • Ubuntu 22.04 make menuconfig 失败原因
  • SAP学习笔记 - 开发03 - CDSView开发环境搭建,Eclipse中连接SAP,CDSView创建
  • 认知杂谈54
  • AAudio的延迟优化
  • SpringMVC基于注解使用:国际化
  • 点云数据常见的坐标系有哪些,如何进行转换?
  • 红旗EQM换电连接器哪家生产
  • Vue3 父子传参 简单易懂
  • 视频处理基础之gradio框架实现
  • Transformer从零详细解读
  • [PHP内核探索]PHP中的哈希表
  • (ckeditor+ckfinder用法)Jquery,js获取ckeditor值
  • [分享]iOS开发-关于在xcode中引用文件夹右边出现问号的解决办法
  • 【Amaple教程】5. 插件
  • Brief introduction of how to 'Call, Apply and Bind'
  • css选择器
  • Javascript 原型链
  • Java基本数据类型之Number
  • JS变量作用域
  • learning koa2.x
  • MySQL用户中的%到底包不包括localhost?
  • 持续集成与持续部署宝典Part 2:创建持续集成流水线
  • 将 Measurements 和 Units 应用到物理学
  • 驱动程序原理
  • 如何在GitHub上创建个人博客
  • 入手阿里云新服务器的部署NODE
  • 适配iPhoneX、iPhoneXs、iPhoneXs Max、iPhoneXr 屏幕尺寸及安全区域
  • JavaScript 新语法详解:Class 的私有属性与私有方法 ...
  • 数据可视化之下发图实践
  • ​14:00面试,14:06就出来了,问的问题有点变态。。。
  • ​草莓熊python turtle绘图代码(玫瑰花版)附源代码
  • ​如何使用ArcGIS Pro制作渐变河流效果
  • # Kafka_深入探秘者(2):kafka 生产者
  • #define、const、typedef的差别
  • #LLM入门|Prompt#2.3_对查询任务进行分类|意图分析_Classification
  • $(document).ready(function(){}), $().ready(function(){})和$(function(){})三者区别
  • (4) PIVOT 和 UPIVOT 的使用
  • (55)MOS管专题--->(10)MOS管的封装
  • (javascript)再说document.body.scrollTop的使用问题
  • (MonoGame从入门到放弃-1) MonoGame环境搭建
  • (ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY)讲解
  • (第61天)多租户架构(CDB/PDB)
  • (附源码)c#+winform实现远程开机(广域网可用)
  • (附源码)springboot社区居家养老互助服务管理平台 毕业设计 062027
  • (佳作)两轮平衡小车(原理图、PCB、程序源码、BOM等)
  • (教学思路 C#之类三)方法参数类型(ref、out、parmas)
  • (十八)devops持续集成开发——使用docker安装部署jenkins流水线服务
  • (算法)区间调度问题
  • ****Linux下Mysql的安装和配置
  • .NET CORE 3.1 集成JWT鉴权和授权2