鸿蒙 harmonyos 进程间通讯 Emitter

Emitter

本模块提供发送和处理进程内事件的能力,包括对持续订阅事件或单次订阅事件的处理,取消订阅事件,发送事件到事件队列。

emitter.on 持续订阅某个事件 接收事件的回调处理。

emitter.once  单次订阅某个事件以及接收事件的回调处理,接收到回调处理后自动取消订阅。

emitter.off  取消订阅某个事件。

emitter.emit  发送一个事件到事件队列。

Emitter 投递的事件InnerEvent,两个属性

名称

类型

可读

可写

说明

eventId

number

事件的ID,由开发者定义用来辨别事件。

priority

EventPriority

事件被投递的优先级。

EventPriority 的优先级代表

名称

说明

IMMEDIATE

0

表示事件被立即投递。

HIGH

1

表示事件先于LOW优先级投递。

LOW

2

表示事件优于IDLE优先级投递,事件的默认优先级是LOW。

IDLE

3

表示在没有其他事件的情况下,才投递该事件。

 传递数据用EventData,

data

[key: string]: any

发送事件时传递的数据,数据类型支持字符串、整型和布尔型。

其中字符串长度最大为10240字节。

使用样例:

@Entry
@Component
struct Index {
  @State message: string = 'Hello World';

  eventData = {
    data: {
      "content": "c",
      "id": 1,
    }};
  innerEvent = {
    eventId: 1
  };
  EmitterCallback(eventData) {
    logger.info('kangresult');
  }

  async testWoker(){
    logger.info("kang");
    for (let i=0;i<5;i++){
      logger.info("kang"+i);
      emitter.emit(this.innerEvent,this.eventData)
    }
  }

  aboutToAppear(){
    // taskpoolTest();
    logger.info("aboutToAppear");
    emitter.on(this.innerEvent, this.EmitterCallback);
  }

  build() {
    Row() {
      Column() {
        Text(this.message)
          .fontSize(50)
          .fontWeight(FontWeight.Bold)
          .onClick(()=>{
            this.testWoker();
          })
        // MainPage({title:'nahao',content:'bingxing'})
      }
      .width('100%')
    }
    .height('100%')
  }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值